ABC145 C - Average Length
備忘録
問題
"use strict" function dist(a, b){ const xa = a.trim().split(' ').map(Number)[0]; const ya = a.trim().split(' ').map(Number)[1]; const xb = b.trim().split(' ').map(Number)[0]; const yb = b.trim().split(' ').map(Number)[1]; const X = xa - xb; const Y = ya - yb; return Math.sqrt(Math.pow(X, 2) + Math.pow(Y, 2)) } function Main(input) { input = input.trim().split('\n'); const N = Number(input[0]); const XY = input.slice(1, input.length); let sum = 0; for(let i=0; i<N; i++){ for(let j=0; j<N; j++){ let a = XY[i]; let b = XY[j]; sum += dist(a, b); } } console.log(sum/N); } Main(require("fs").readFileSync("/dev/stdin", "utf8"));
考え方
N
は1≦N≦8
で、全検索してもLTE
にならない。
愚直にfor
を二つ重ねて、全パターンの2点間の距離を算出。
これらの2点間のパターンはN
回出てくるので、最後に平均化することで答えが出る?
(この辺をちゃんと理解できていない)
参考
【AtCoder Beginner Contest 145】C – Average Length | アルゴリズムロジック