Submission #953662

#TimeUsernameProblemLanguageResultExecution timeMemory
953662m5588ohammedSterilizing Spray (JOI15_sterilizing)C++14
5 / 100
70 ms8272 KiB
/****************************************************************************** Welcome to GDB Online. GDB online is an online compiler and debugger tool for C, C++, Python, Java, PHP, Ruby, Perl, C#, OCaml, VB, Swift, Pascal, Fortran, Haskell, Objective-C, Assembly, HTML, CSS, JS, SQLite, Prolog. Code, Compile, Run and Debug online from anywhere in world. *******************************************************************************/ #include <bits/stdc++.h> using namespace std; #define int long long int Tree[3000000]; int N=(1<<(int)(log2(1000000))); int l,r; int solve(int l1,int r1,int i){ if(l1>r||r1<l) return 0; if(l1>=l&&r1<=r) return Tree[i]; return solve(l,(r+l)/2,i*2)+solve(((l+r)/2)+1,r,i*2+1); } signed main() { int n,k,q; cin>>n>>q>>k; int arr[n+1]; for(int i=0;i<n;i++){ cin>>arr[i]; Tree[i+N]=arr[i]; } for(int i=N-1;i>=1;i--) Tree[i]=Tree[i*2]+Tree[i*2+1]; if(n<=3000&&q<=3000){ while(q--){ int type; cin>>type; if(type==1){ int indx,b; cin>>indx>>b; arr[indx-1]=b; } if(type==2){ int l,r; cin>>l>>r; for(int i=l-1;i<r;i++){ arr[i]=arr[i]/k; } } if(type==3){ int l,r,sum=0; cin>>l>>r; for(int i=l-1;i<r;i++){ sum+=arr[i]; } cout<<sum<<endl; } } } else if(k==1){ while(q--){ int type; cin>>type; if(type==1){ int indx,b; indx--; cin>>indx>>b; Tree[indx+N]=arr[indx]=b; indx+=N; indx/=2; while(indx!=0){ Tree[indx]=Tree[indx*2]+Tree[indx*2+1]; indx/=2; } } if(type==3){ cin>>l>>r; l--; r--; cout<<solve(0,N-1,1)<<endl; } } } 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...