atcoder Tenka1 Programmer Beginner Contest C - Align
解けなかったので、解答PDFと動画を見て理解した。
まずは配列を昇順ソートする。 そして、配列の長さなどの各パターンに合わせてそれぞれの要素に重みをつける。
1)配列の長さが偶数
2パターンあるのだが、わかりやすいので①のみを考える。
a.中央値-1より前に-2をかける
b.中央値-1は-1をかける
c.中央値は+1をかける
d.中央値より後ろは+2をかける
e.上記の合計を出力
2)配列の長さが奇数
①. Wのパターン
a.中央値より前に-2をかける
b.中央値は+1をかける
c.中央値+1は+1をかける
d.中央値+1より後ろは+2をかける
e.上記の合計
②.逆Wのパターン
a.中央値-1より前に-2をかける
b.中央値-1は-1をかける
c.中央値は-1をかける
d.中央値より後ろは+2をかける
e.上記の合計
そして、①②の大きいほうを出力