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

hamayanhamayan's blog

Free Ice Cream [Codeforces 359 : Div2 A]

問題

http://codeforces.com/contest/686/problem/A

最初にx個のアイスを持っており、以下のクエリを処理する。

  1. クエリ1「+ d」: d個のアイスを受け取る
  2. クエリ2「- d」: d個のアイスを渡すが、もし持っているアイスがd個未満の場合は、distressedな子供が1人増える

以上のクエリをn個処理したときの、最終的に持っているアイスの個数とdistressedな子供の数を答える。

0 <= x <= 10^9
0 <= n <= 10^3
1 <= d <= 10^9

思考の流れ
  1. コドフォDiv.2の1問目 -> シミュレーションかな?
  2. nの数も多くない
  3. 要するに「やるだけ」
解法

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);