Advertisement
Guest User

Untitled

a guest
Nov 23rd, 2017
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.74 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. const int N = 100005;
  5.  
  6. int i, n, a[N], d, rs, sum[N], sumx[N], curr, x;
  7.  
  8. int main() {
  9. ios_base::sync_with_stdio(0);
  10.  
  11. cin >> n >> d;
  12. for(i = 1; i <= n; ++i) {
  13. cin >> a[i];
  14. sum[i] = sum[i - 1] + a[i];
  15. }
  16. for(i = n, sumx[n + 1] = -1e9 + 59; i; --i)
  17. sumx[i] = max(sum[i], sumx[i + 1]);
  18.  
  19. for(i = 1; i <= n; ++i) {
  20. if(a[i]) curr += a[i];
  21. if(!a[i]) {
  22. if(i == n) { if(curr < 0) ++rs; continue; }
  23. x = d - sumx[i + 1] + sum[i] - curr;
  24. if(curr < 0) curr = curr + x, ++rs;
  25. if(curr > d) curr = d;
  26. if(curr < 0) return cout << "-1\n", 0;
  27. }
  28. if(curr > d) return cout << "-1\n", 0;
  29. }
  30.  
  31. cout << rs << '\n';
  32.  
  33. return 0;
  34. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement