#include <iostream>
#include <vector>
#include <algorithm>
#include <cassert>
using ll = long long;
#define debug(x) #x << " = " << x << '\n'
#define int ll
signed 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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |