Submission #68961

#TimeUsernameProblemLanguageResultExecution timeMemory
68961MKopchevGame (IOI13_game)C++14
37 / 100
13058 ms28980 KiB
#include<bits/stdc++.h> #include "game.h" using namespace std; vector< vector<long long> > tree; long long my_gcd(long long a,long long b) { if(a==0||b==0)return a+b; long long r=a%b; while(r) { a=b; b=r; r=a%b; } return b; } int r,c; void init(int R, int C) { r=R; c=C; int mx=1; while(mx<C)mx=mx*2; mx=mx*2+5; vector<long long> help={}; for(int j=0;j<mx;j++)help.push_back(0); for(int i=0;i<R;i++) { tree.push_back(help); } } void my_update(int ind,int node,int l,int r,int pos,long long val) { if(l==r) { tree[ind][node]=val; return; } int av=(l+r)/2; if(pos<=av)my_update(ind,node*2,l,av,pos,val); else my_update(ind,node*2+1,av+1,r,pos,val); tree[ind][node]=my_gcd(tree[ind][node*2],tree[ind][node*2+1]); } void update(int P, int Q, long long K) { my_update(P,1,0,c-1,Q,K); } long long my_query(int ind,int node,int l,int r,int lq,int rq) { if(tree[ind][node]==0)return tree[ind][node]; if(l==lq&&r==rq)return tree[ind][node]; int av=(l+r)/2; long long ans=0; if(lq<=av)ans=my_gcd(ans,my_query(ind,node*2,l,av,lq,min(av,rq))); if(av<rq)ans=my_gcd(ans,my_query(ind,node*2+1,av+1,r,max(av+1,lq),rq)); return ans; } long long calculate(int P, int Q, int U, int V) { long long ans=0; for(int i=P;i<=U;i++) ans=my_gcd(ans,my_query(i,1,0,c-1,Q,V)); return ans; } /* int main() { init(2,3); update(0,0,20); update(0,2,15); update(1,1,12); cout<<calculate(0,0,0,2)<<endl;//5 cout<<calculate(0,0,1,1)<<endl;//4 update(0,1,6); update(1,1,14); cout<<calculate(0,0,0,2)<<endl;//1 cout<<calculate(0,0,1,1)<<endl;//2 } */

Compilation message (stderr)

grader.c: In function 'int main()':
grader.c:18:6: warning: variable 'res' set but not used [-Wunused-but-set-variable]
  int res;
      ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...