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

hamayanhamayan's blog

Achieve the Goal [AtCoder Beginner Contest 151 B]

https://atcoder.jp/contests/abc151/tasks/abc151_b

解説

https://atcoder.jp/contests/abc151/submissions/9448365

計算することで最適な点数を求めることもできそうだが、
今回は点数は最大100点満点なので、全探索で求めていこう。
最後の点数を全探索して、平均点がM点以上であるものの最小点数を答える。
平均点の比較では、分数をあまり使いたくないので、両辺を個数でかけることで整数比較にしておこう。

int N, K, M;
int A[101];
//---------------------------------------------------------------------------------------------------
void _main() {
    cin >> N >> K >> M;
    rep(i, 0, N - 1) cin >> A[i];

    int tot = 0;
    rep(i, 0, N - 1) tot += A[i];

    rep(lst, 0, K + 1) {
        if (M * N <= lst + tot) {
            cout << lst << endl;
            return;
        }
    }

    cout << -1 << endl;
}