sicily 2013

    技术2024-07-27  68

    贪心,当钱足够付清前面所有的帐时才还债。

    #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; } 

    最新回复(0)