Submission #1277116

#TimeUsernameProblemLanguageResultExecution timeMemory
1277116LucaLucaMMizuyokan 2 (JOI23_mizuyokan2)C++20
0 / 100
45 ms1352 KiB
#include <iostream>
#include <vector>
#include <algorithm>
#include <cassert>

using ll = long long;
#define debug(x) #x << " = " << x << '\n'

int main() {
  std::ios_base::sync_with_stdio(false);
  std::cin.tie(0);
 
  int n;
  std::cin >> n;
  std::vector<int> a(n);
  for (int &x : a) {
    std::cin >> x;
  }

  auto brute = [&](std::vector<int> v, bool up) {
    int n = (int) v.size();
    v.insert(v.begin(), 0);
    v.push_back(0);
    int sum = 0;
    int prev = up? 0 : v[1];
    int answer = up? 0 : 1;
    for (int i = up? 1 : 2; i <= n; i++) {
      sum += v[i];
      if (sum > prev && sum > v[i + 1]) {
        answer++;
        i++;
        sum = 0;
        if (i <= n) {
          answer++;
          prev = v[i];
        }
      }
    }
    return answer;
  };

  int q;
  std::cin >> q;
  while (q--) {
    int x, y, l, r;
    std::cin >> x >> y >> l >> r;
    x--;
    r--;
    
    a[x] = y;
    std::vector<int> v;
    for (int i = l; i <= r; i++) {
      v.push_back(a[i]);
    }
    std::cout << std::max(brute(v, 0), brute(v, 1)) << '\n';
  }

  return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...