問題
http://codeforces.com/contest/686/problem/A
最初にx個のアイスを持っており、以下のクエリを処理する。
- クエリ1「+ d」: d個のアイスを受け取る
- クエリ2「- d」: d個のアイスを渡すが、もし持っているアイスがd個未満の場合は、distressedな子供が1人増える
以上のクエリをn個処理したときの、最終的に持っているアイスの個数とdistressedな子供の数を答える。
0 <= x <= 10^9
0 <= n <= 10^3
1 <= d <= 10^9
思考の流れ
- コドフォDiv.2の1問目 -> シミュレーションかな?
- nの数も多くない
- 要するに「やるだけ」
解法
http://codeforces.com/contest/686/submission/18771049
オーバーフローするかもしれないので、long longで個数は持つ
int n; long long x; cin >> n >> x; int distress = 0; rep(i, 0, n) { char c; cin >> c; int d; cin >> d; if (c == '+') x += d; else { if (d <= x) { x -= d; } else { distress++; } } } printf("%I64d %d\n", x, distress);