Submission #124799

#TimeUsernameProblemLanguageResultExecution timeMemory
124799hungcungSterilizing Spray (JOI15_sterilizing)C++17
100 / 100
269 ms3832 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...