Submission #99163

#TimeUsernameProblemLanguageResultExecution timeMemory
99163jhnah917Game (IOI13_game)C++14
0 / 100
4 ms896 KiB
#ifndef __GAME_H__ #define __GAME_H__ #ifdef __cplusplus extern "C" { #endif #include <math.h> void init(int R, int C); void update(int P, int Q, long long K); long long calculate(int P, int Q, int U, int V); int r, c; typedef long long ll; long long f(long long X, long long Y) { long long tmp; while (X != Y && Y != 0) { tmp = X; X = Y; Y = tmp % Y; } return X; } struct Seg1d{ ll *arr; int lim; void init(int n){ for(lim=1; lim<n; lim<<=1); arr = new ll[lim*2]; } void update(int idx, ll val){ idx |= lim; arr[idx] = val; while(idx >>= 1) arr[idx] = f(arr[idx*2], arr[idx*2+1]); } ll query(int l, int r){ ll lval = 0, rval = 0; l |= lim, r |= lim; while(l <= r){ if(l&1) lval = f(lval, arr[l++]); if(!(r&1)) rval = f(rval, arr[r--]); l >>= 1, r >>= 1; } return f(lval, rval); } Seg1d(){ init(c); } }; struct Seg2d{ Seg1d *arr; int lim; void init(int n){ for(lim=1; lim<n; lim<<=1); arr = new Seg1d[lim*2]; } void update(int x, int y, ll val){ x |= lim; arr[x].update(y, val); while(x >>= 1){ arr[x].update(y, val); } } ll query(int x1, int x2, int y1, int y2){ ll ret = 0; x1 |= lim, x2 |= lim; while(x1 <= x2){ if(x1 & 1) ret = f(ret, arr[x1++].query(y1, y2)); if(!(x2 & 1)) ret = f(ret, arr[x2--].query(y1, y2)); x1 >>= 1; x2 >>= 1; } return ret; } Seg2d(){ init(r); } } tree; void init(int R, int C) { r = R, c = C; tree = Seg2d(); } void update(int x, int y, long long val) { tree.update(x, y, val); } long long calculate(int x1, int y1, int x2, int y2) { return tree.query(x1, x2, y1, y2); } #ifdef __cplusplus } #endif #endif /* __GAME_H__ */

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...