#include <bits/stdc++.h>
using namespace std;
int n,q;
long long arr[250005];
int32_t main(){
ios::sync_with_stdio(0);
cin.tie(0);
cin >> n;
for(int i=1; i<=n; i++) cin >> arr[i];
cin >> q;
while(q--){
int a;
long long b;
int c,d;
cin >> a >> b >> c >> d;
c++;
arr[a]=b;
long long dp[n+1];
memset(dp,0,sizeof(dp));
dp[1]=1;
for(int i=2; i<=d-c+1; i++){
long long sm=0;
for(int j=i-1; j>0; j--){
sm+=arr[c+j-1];
if(sm<=arr[c+i-1]) continue;
if(j>c&&arr[c+j-2]>=sm) continue;
//cout << j << ' ' << i << ' ' << sm << ' ' << dp[j-1] << '\n';
dp[i]=max(dp[i],dp[j-1]+2);
}
//cout << dp[i] << ' ';
}
long long ans=max(1ll,dp[d-c+1]),sm=0;
for(int i=d-c; i>0; i--){
sm+=arr[c+i];
if(arr[c+i-1]<sm) ans=max(ans,dp[i]+1);
}
cout << ans << '\n';
}
}
# | 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... |