이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll N,Q,niz[250005];
/*
1 veci
-1 manji
*/
ll duzina(ll gde,ll duz,ll vp,ll tip,ll kraj){
if(gde>kraj)
return 0;
// cout<<gde<<" "<<duz<<" "<<vp<<" "<<tip<<" "<<kraj<<endl;
if((duz+niz[gde])*tip>vp*tip)
return 1+duzina(gde+1,0,duz+niz[gde],tip*-1,kraj);
if(tip==1)
return duzina(gde+1,duz+niz[gde],vp,tip,kraj);
else
return duzina(gde+1,0,vp+niz[gde],tip,kraj);
}
int main(){
cin>>N;
for(int i=1;i<=N;i++)
cin>>niz[i];
cin>>Q;
while(Q--){
ll a,b,L,R;
cin>>a>>b>>L>>R;
L++;
niz[a]=b;
cout<<max(duzina(L,0,1e18,-1,R),duzina(L,0,-1e18,1,R))<<endl;
}
return 0;
}
/*
4
6 2 3 2
1
3 2 1 3
*/
# | 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... |