ABC156 C - Rally
備忘録
問題
回答
"use strict" function consume(x, p){ return Math.pow((x - p), 2); } function Main(input) { input = input.trim().split('\n'); const N = Number(input[0]); const X = input[1].split(' ').map(Number); const M = X.length; let ret = []; for(let p=1; p<=101; p++){ let tmp = 0; for(let i=0; i<M; i++){ tmp += consume(X[i], p); } ret.push(tmp); } console.log(Math.min(...ret)); } Main(require("fs").readFileSync("/dev/stdin", "utf8"));
考え方
公式解説の通り、探索対象となる座標P
は1≦P≦100
となる。
住人も最大N
人のため、各座標P
におけるN
人の体力消費を算出した場合でも、
最大1e4
回程度の計算のため、愚直にループを2つ重ねることができる。
(上記回答では座標P
に対して、101回ループを行っているが。。)
座標P
の探索範囲にさえ気が付けば、あとは単純な計算を繰り返すだけ。