Submission #127559

#TimeUsernameProblemLanguageResultExecution timeMemory
127559MoNsTeR_CuBeGame (IOI13_game)C++17
37 / 100
13081 ms71608 KiB
#include "game.h" #include <bits/stdc++.h> using namespace std; long long gcd2(long long X, long long Y) { long long tmp; while (X != Y && Y != 0) { tmp = X; X = Y; Y = tmp % Y; } return X; } #define int long long struct node{ node* l, *r; int val; }; void Build(node *root, int left, int right){ if(left == right){ return; } root->l = new node{NULL,NULL,0}; root->r = new node{NULL,NULL,0}; int mid = (left+right)/2; Build(root->l, left, mid); Build(root->r, mid+1, right); } int Update(node *root, int left, int right, int qL, int qR, int val){ if(left > qR || right < qL) return root->val; if(left >= qL && right <= qR){ root->val = val; return val; } int mid = (left+right)/2; return root->val = gcd2(Update(root->l, left, mid, qL, qR, val), Update(root->r, mid+1, right, qL, qR, val)); } int query(node *root, int left, int right, int qL, int qR){ if(left > qR || right < qL){ return 0; } if(left >= qL && right <= qR){ return root->val; } int mid = (left+right)/2; return gcd2(query(root->l, left, mid, qL, qR), query(root->r, mid+1, right, qL, qR)); } vector< node* > roots; int r, c; #undef int void init(int R, int C) { #define int long long r = R, c = C; roots.resize(R+1); for(int i = 1; i <= R; i++){ roots[i] = new node{NULL,NULL,0}; Build(roots[i], 1, C); } #undef int } void update(int P, int Q, long long K) { #define int long long Update(roots[P+1], 1, c, Q+1, Q+1, K); #undef int } long long calculate(int P, int Q, int U, int V) { #define int long long int gcd = 0; for(int i = P+1; i <= U+1; i++){ gcd = gcd2(gcd, query(roots[i], 1, c, Q+1, V+1)); } return gcd; #undef int }

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