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

hamayanhamayan's blog

Many Kinds of Apples [RUPC2018 Day3 A]

解法

https://onlinejudge.u-aizu.ac.jp/beta/review.html#RitsCamp18Day3/2752843

玉を入れる出すをシミュレートしよう。
特に注意するべき所も無いが、処理の途中で結果がわかったら終了するようなタイプのやつは、答える関数を別にしておくと、returnで答えることが出来るので便利。

int N, c[1010];
int Q, box[1010];
//---------------------------------------------------------------------------------------------------
int solve() {
    cin >> N;
    rep(i, 0, N) cin >> c[i];
    cin >> Q;
    rep(q, 0, Q) {
        int t, x, d; cin >> t >> x >> d;
        x--;

        if (t == 1) {
            box[x] += d;
            if (c[x] < box[x]) return x + 1;
        } else {
            box[x] -= d;
            if (box[x] < 0) return x + 1;
        }
    }
    return 0;
}
//---------------------------------------------------------------------------------------------------
void _main() {
    cout << solve() << endl;
}