fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int main() {
  5. ios::sync_with_stdio(false);
  6. cin.tie(nullptr);
  7.  
  8. int n;
  9. cin >> n;
  10. vector<long long> a(n);
  11. for (int i = 0; i < n; i++) cin >> a[i];
  12.  
  13. vector<long long> pref(2*n+1, 0);
  14.  
  15. for (int i = 1; i <= n; i++)
  16. pref[i] = pref[i-1] + a[i-1];
  17.  
  18. for (int i = n+1; i <= 2*n; i++)
  19. pref[i] = pref[n] + pref[i-n];
  20.  
  21. deque<int> dq;
  22. vector<long long> mn(2*n+1);
  23.  
  24. int len = n;
  25.  
  26. for (int i = 1; i <= 2*n; i++) {
  27. while (!dq.empty() && pref[dq.back()] >= pref[i]) dq.pop_back();
  28. dq.push_back(i);
  29. while (dq.front() <= i - len) dq.pop_front();
  30.  
  31. mn[i] = pref[dq.front()];
  32. }
  33.  
  34. int ans = 0;
  35.  
  36. for (int k = 1; k <= n; k++) {
  37. long long low = mn[k + n - 1];
  38. if (low >= pref[k-1]) ans++;
  39. }
  40.  
  41. cout << ans << "\n";
  42. }
  43.  
Success #stdin #stdout 0.01s 5316KB
stdin
5
2 3 -4 1 -1
stdout
2