はまやんはまやんはまやん

hamayanhamayan's blog

Thumbnail [Dwango Programming Contest V / 第5回 ドワンゴからの挑戦状 予選 A]

https://beta.atcoder.jp/contests/dwacon5th-prelims/tasks/dwacon5th_prelims_a

解説

https://beta.atcoder.jp/contests/dwacon5th-prelims/submissions/3659999

問題で指定されていることをやる。
だが、実際に平均を出すと、誤差が怖いので、比較するときにmin(平均,a[i])ではなくmin(総和,N*a[i])で比較する。
これなら整数で収まるので誤差がなくなる。
あとは、問題で要求されていることを実装しよう。

int N, A[101];
//---------------------------------------------------------------------------------------------------
void _main() {
    cin >> N;
    rep(i, 0, N) cin >> A[i];
 
    int sm = 0;
    rep(i, 0, N) sm += A[i];
 
    int d = inf, ans = inf;
    rep(i, 0, N) {
        int dd = abs(sm - A[i] * N);
        if (dd < d) {
            d = dd;
            ans = i;
        }
    }
    cout << ans << endl;
}