ARC004 A - 2点間距離の最大値 ( The longest distance )
備忘録
問題
回答
"use strict" function Main(input) { input = input.trim().split('\n'); const n = Number(input.slice(0, 1)); const arr = input.slice(1, input.length); let ans=-1; for(let i=0; i<arr.length; ++i){ for(let o=0; o<arr.length; ++o){ if(i===o) continue; let x1 = Number(arr[i].split(' ')[0]); let y1 = Number(arr[i].split(' ')[1]); let x2 = Number(arr[o].split(' ')[0]); let y2 = Number(arr[o].split(' ')[1]); let ret = Math.sqrt(Math.pow((x1-x2), 2) + Math.pow((y1-y2), 2)); if(ans<ret) ans=ret; } } console.log(ans); } Main(require("fs").readFileSync("/dev/stdin", "utf8"));
考え方
与えられた点(x, y)
の2点間の距離を全パターン算出して、一番大きい値を保持しておくだけ。
問題を最初見たとき、制限時間超過を気にして全パターンの算出に躊躇したが、
与えられる点の個数が2≦N≦100
なので、多くても10000回程度のループなので全パターン検索で問題なかった。
あとは中学で習う2点間の距離を求める計算を行えば、問題なく解ける問題(だったが、わからなかったので普通に調べた。。)