This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
using namespace std;
#define int long long
int n,q,k,t,x,y,a[100005],tree[400005];
void build(int id,int l,int r){
if(l==r){
tree[id]=a[l];
return;
}
int mid=(l+r)/2;
build(id*2,l,mid);
build(id*2+1,mid+1,r);
tree[id]=tree[id*2]+tree[id*2+1];
}
void update1(int id,int l,int r,int pos,int val){
if(l==r){
tree[id]=val;
return;
}
int mid=(l+r)/2;
if(pos<=mid) update1(id*2,l,mid,pos,val);
else update1(id*2+1,mid+1,r,pos,val);
tree[id]=tree[id*2]+tree[id*2+1];
}
void update2(int id,int l,int r,int u,int v){
if(tree[id]==0||k==1) return;
if(l==r){
tree[id]/=k;
return;
}
int mid=(l+r)/2;
if(u<=mid) update2(id*2,l,mid,u,v);
if(mid<v) update2(id*2+1,mid+1,r,u,v);
tree[id]=tree[id*2]+tree[id*2+1];
}
int getsum(int id,int l,int r,int u,int v){
if(v<l||u>r||u>v) return 0;
if(u<=l&&r<=v){
return tree[id];
}
int mid=(l+r)/2,ans=0;
if(u<=mid) ans+=getsum(id*2,l,mid,u,v);
if(mid<v) ans+=getsum(id*2+1,mid+1,r,u,v);
return ans;
}
signed main(){
scanf("%lld %lld %lld",&n,&q,&k);
for(int i=1;i<=n;i++){
scanf("%lld",&a[i]);
}
build(1,1,n);
while(q--){
scanf("%lld %lld %lld",&t,&x,&y);
if(t==1){
update1(1,1,n,x,y);
}if(t==2){
update2(1,1,n,x,y);
}if(t==3){
printf("%lld\n",getsum(1,1,n,x,y));
}
}
}
Compilation message (stderr)
sterilizing.cpp: In function 'int main()':
sterilizing.cpp:47:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
scanf("%lld %lld %lld",&n,&q,&k);
~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
sterilizing.cpp:49:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
scanf("%lld",&a[i]);
~~~~~^~~~~~~~~~~~~~
sterilizing.cpp:53:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
scanf("%lld %lld %lld",&t,&x,&y);
~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 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... |