Submission #281812

#TimeUsernameProblemLanguageResultExecution timeMemory
281812shayan_pGame (IOI13_game)C++14
37 / 100
13079 ms8152 KiB
// And you curse yourself for things you never done #include<bits/stdc++.h> #include "game.h" #define F first #define S second #define PB push_back #define sz(s) int((s).size()) #define bit(n,k) (((n)>>(k))&1) using namespace std; typedef long long ll; typedef pair<int,int> pii; int N, M; struct node{ ll g = 0; node *L = 0, *R = 0; void put(int pos, ll x, int l = 0, int r = M){ if(r-l == 1){ g = x; return; } int mid = (l+r) >> 1; if(pos < mid){ if(!L) L = new node(); L->put(pos, x, l, mid); } else{ if(!R) R = new node(); R->put(pos, x, mid, r); } g = __gcd(L ? L->g : 0, R ? R->g : 0); } ll ask(int f, int s, int l = 0, int r = M){ if(r <= f || s <= l) return 0; if(f <= l && r <= s) return g; int mid = (l+r) >> 1; return __gcd(L ? L->ask(f, s, l, mid) : 0, R ? R->ask(f, s, mid, r) : 0); } }; struct node2{ node* g = 0; node2 *L = 0, *R = 0; void put(int posx, int posy, ll x, int l = 0, int r = N){ if(!g) g = new node(); g->put(posy, x); if(r-l == 1){ return; } int mid = (l+r) >> 1; if(posx < mid){ if(!L) L = new node2(); L->put(posx, posy, x, l, mid); } else{ if(!R) R = new node2(); R->put(posx, posy, x, mid, r); } } ll ask(int f, int s, int ff, int ss, int l = 0, int r = N){ if(r <= f || s <= l) return 0; if(f <= l && r <= s) return g ? g->ask(ff, ss) : 0; int mid = (l+r) >> 1; return __gcd(L ? L->ask(f, s, ff, ss, l, mid) : 0, R ? R->ask(f, s, ff, ss, mid, r) : 0); } }; node2* root; void init(int N, int M){ ::N = N, ::M = M; root = new node2(); } map<int, node*> mp; void update(int x, int y, ll w){ if(mp.count(x) == 0) mp[x] = new node(); mp[x]->put(y, w); // root->put(x, y, w); } ll calculate(int x, int y, int xx, int yy){ ll ans = 0; for(auto p : mp){ if(x <= p.F && p.F <= xx) ans = __gcd(ans, p.S->ask(y, yy+1)); } return ans; // return root->ask(x, ++xx, y, ++yy); }

Compilation message (stderr)

grader.c: In function 'int main()':
grader.c:18:6: warning: variable 'res' set but not used [-Wunused-but-set-variable]
   18 |  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...