제출 #289971

#제출 시각아이디문제언어결과실행 시간메모리
289971egekabas게임 (IOI13_game)C++14
0 / 100
1 ms512 KiB
#include "game.h" #include <bits/stdc++.h> #define all(x) (x).begin(), (x).end() #define ff first #define ss second #define pb push_back #define mp make_pair using namespace std; typedef long long ll; typedef unsigned long long ull; typedef long double ld; typedef pair<ll, ll> pll; typedef pair<ull, ull> pull; typedef pair<ll, ll> pii; typedef pair<ld, ld> pld; 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; } struct node{ ll tl, tr, val; node *l = nullptr, *r = nullptr; node(ll tlval, ll trval){ tl = tlval; tr = trval; val = 0; }; void upd(ll idx, ll nv){ if(tl == idx && tr == idx){ val = nv; return; } ll tm = (tl+tr)/2; if(idx <= tm){ if(!l) l = new node(tl, tm); l->upd(idx, nv); } else{ if(!r) r = new node(tm+1, tr); r->upd(idx, nv); } val = 0; if(l) val = gcd2(val, l->val); if(r) val = gcd2(val, r->val); } ll get(ll lef, ll rig){ if(tr < lef || rig < tl) return 0; if(lef <= tl && tr <= rig){ return val; } ll xval = 0, yval = 0; if(l) xval = l->get(lef, rig); if(r) yval = r->get(lef, rig); return gcd2(xval, yval); } }; ll r, c; struct seg{ ll tl, tr; node *val; seg *l = nullptr, *r = nullptr; seg(ll tval, ll rval){ tl = tval; tr = rval; val = new node(0, c-1); } seg(){} void upd(ll xidx, ll yidx, ll nv){ val->upd(yidx, nv); if(tl == xidx && tr == xidx){ return; } ll tm = (tl+tr)/2; if(xidx <= tm){ if(!l) l = new seg(tl, tm); l->upd(xidx, yidx, nv); } else{ if(!r) r = new seg(tm+1, tr); r->upd(xidx, yidx, nv); } } ll get(ll xl, ll xr, ll yl, ll yr){ if(tr < xl || xr < tl) return 0; if(xl <= tl && tr <= xr){ return val->get(yl, yr); } ll xval = 0, yval = 0; if(l) xval = l->get(xl, xr, yl, yr); if(r) yval = r->get(xl, xr, yl, yr); return gcd2(xval, yval); } }; seg root; void init(int R, int C) { r = R; c = C; root = seg(0, r-1); } void update(int P, int Q, long long K) { root.upd(P, Q, K); } long long calculate(int P, int Q, int U, int V) { return root.get(P, U, Q, V); }

컴파일 시 표준 에러 (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...