Submission #518355

#TimeUsernameProblemLanguageResultExecution timeMemory
518355akshitSterilizing Spray (JOI15_sterilizing)C++14
0 / 100
246 ms524292 KiB
// https://oj.uz/problem/view/JOI15_sterilizing #include<bits/stdc++.h> typedef long long ll; using namespace std; vector<ll> seg; vector<ll> arr; int n,q;ll k; void build(int l,int r,int node){ // cout<<l<<" "<<r<<endl; if(l==r){seg[node]=arr[l];return;} int mid=(l+r)>>1; int L=node<<1;int R=L|1; build(l,mid,L);build(mid+1,r,R); seg[node]=seg[L]+seg[R]; } void fix(int l,int r,int node,int p,ll val){ if(l==r){seg[node]=arr[l]=val;return;} int mid=(l+r)>>1; int L=node<<1;int R=L|1; if(p<=mid)fix(l,mid,L,p,val); else fix(mid+1,r,R,p,val); seg[node]=seg[L]+seg[R]; } void upd(int l,int r,int node,int i,int j){ // cout<<i<<" "<<j<<endl; if(l==r){ arr[l]/=k; seg[node]=arr[l];return; } int L=node<<1;int R=L|1; int mid=(l+r)>>1; if(mid<i){upd(mid+1,r,R,i,j);} else if(mid>=j){upd(l,mid,L,i,j);} else {upd(l,mid,L,i,mid); upd(mid+1,r,R,mid+1,j);} seg[node]=seg[L]+seg[R]; } ll query(int l,int r,int node,int i,int j){ if(l==i &&j==r){return seg[node];} int L=node<<1;int R=L|1; int mid=(l+r)>>1; if(mid<i){return query(mid+1,r,R,i,j);} if(mid>=j){return query(l,mid,R,i,j);} return query(l,mid,L,i,mid)+query(mid+1,r,R,mid+1,j); } int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL);cout.tie(NULL); #ifndef ONLINE_JUDGE freopen("input.txt","r",stdin); freopen("output.txt","w",stdout); #endif cin>>n>>q>>k; arr.resize(n+1); seg.resize(4*n); for(int i=1;i<=n;i++)cin>>arr[i]; build(1,n,1); int t,a;ll b; // cout<<"test"; // upd(1,n,1,1,3); // cout<<query(1,n,1,1,n); for(int i=0;i<q;i++){ cin>>t>>a>>b; if(t==1){ fix(1,n,1,a,b); // cout<<"f "<<a<<" "<<b<<query(1,n,1,1,n)<<endl; }else if(t==2){ upd(1,n,1,a,b); // cout<<"u "<<a<<" "<<b<<query(1,n,1,1,n)<<endl; }else {cout<<query(1,n,1,a,b)<<endl;} } return 0; }

Compilation message (stderr)

sterilizing.cpp: In function 'int main()':
sterilizing.cpp:52:9: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   52 |  freopen("input.txt","r",stdin);
      |  ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
sterilizing.cpp:53:9: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   53 |  freopen("output.txt","w",stdout);
      |  ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...