fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int main(){
  4. ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
  5. long long n, m, l;
  6. cin >> n >> m >> l; long long arr[n];
  7. for (int i = 0; i < n; i++)
  8. cin >> arr[i];
  9. int c = 0, d = 0; bool f = 0;
  10. for (int i = 0; i < n; i++){
  11. if (!f && arr[i] > l){
  12. f = 1;
  13. d++;
  14. }
  15. else if (f && arr[i] > l){
  16. d++;
  17. }
  18. else if (f && arr[i] <= l){
  19. c++;
  20. d = 0;
  21. f = 0;
  22. }
  23. if (i == n - 1 && d)
  24. c++;
  25. }
  26. while(m--){
  27. int q; cin >> q;
  28. if (!q)
  29. cout << c << '\n';
  30. else{
  31. long long p, d;
  32. cin >> p >> d;
  33. --p;
  34. arr[p] += d;
  35. if (!p){
  36. if (n == 1){
  37. if (arr[p] - d <= l && arr[p] > l)
  38. c++;
  39. }
  40. else{
  41. if (arr[p] - d <= l && arr[p] > l && arr[p + 1] <= l)
  42. c++;
  43. }
  44. }
  45. if (p == n - 1){
  46. if (n == 1){
  47. if (arr[p] - d <= l && arr[p] > l)
  48. c++;
  49. }
  50. else{
  51. if (arr[p] - d <= l && arr[p] > l && arr[p - 1] <= l)
  52. c++;
  53. }
  54. }
  55. if (!p || p == n - 1)continue;
  56. if (arr[p - 1] > l && arr[p + 1] > l && arr[p] - d <= l && arr[p] > l)
  57. c--;
  58.  
  59. if (arr[p - 1] <= l && arr[p + 1] <= l && arr[p] - d <= l && arr[p] > l)
  60. c++;
  61. }
  62. }
  63. return 0;
  64. }
Success #stdin #stdout 0s 15232KB
stdin
4 7 3
1 2 3 4
0
1 2 3
0
1 1 3
0
1 3 1
0
stdout
1
2
2
1