您的位置:首页 > 其它

sicily 2013

2011-01-31 23:38 260 查看
贪心,当钱足够付清前面所有的帐时才还债。

#include <iostream>
using namespace std;
int cost[100010];
int main() {
	//freopen("1.txt", "r", stdin);
	int n;
	cin >> n;
	int last = -1;
	int cur = 0;
	int ans = 0;
	int curCost = 0;
	int _curCost = 0;
	int i = 1;
	for(; i <= n; i++) {
		cin >> cost[i];
		ans += i - cur;
		cur = i;
		if(cost[i] >= 0) curCost += cost[i];
		else {
			_curCost += cost[i];
			if(last == -1) last = i;
		}
		if(last != -1 && curCost + _curCost >= 0) {
			if(last >= cur) ans += last - cur;
			else ans += cur - last;
			cur = last;
			curCost += _curCost;
			_curCost = 0;
			last = -1;
		}	
	}
	cout << ans + n - cur << endl;
	return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: