Submission #1217845

#TimeUsernameProblemLanguageResultExecution timeMemory
1217845hossainrasel1042Game (IOI13_game)C++20
Compilation error
0 ms0 KiB
#include <bits/stdc++.h> using namespace std; #define int long long #define endl '\n' #define fastio ios_base::sync_with_stdio(false); cin.tie(nullptr); vector<vector<int>>tree; vector<vector<int>>st; int n,m; void buildy(int nodex,int lx,int rx,int nodey,int ly,int ry){ if(ly==ry){ if(lx==rx){ tree[nodex][nodey]=st[lx][ly]; }else{ tree[nodex][nodey]=gcd(tree[2*nodex][nodey],tree[2*nodex+1][nodey]); } return; } int mid=(ly+ry)>>1; buildy(nodex,lx,rx,2*nodey,ly,mid); buildy(nodex,lx,rx,2*nodey+1,mid+1,ry); tree[nodex][nodey]=gcd(tree[nodex][2*nodey],tree[nodex][2*nodey+1]); } void buildx(int nodex,int lx,int rx){ if(lx==rx){ buildy(nodex,lx,rx,1,0,m-1); return; } int mid=(lx+rx)>>1; buildx(2*nodex,lx,mid); buildx(2*nodex+1,mid+1,rx); buildy(nodex, lx, rx, 1, 0, m - 1); } int queryy(int nodex, int nodey, int ly, int ry, int y1, int y2) { if (y2 < ly || ry < y1) return 0; if (y1 <= ly && ry <= y2) return tree[nodex][nodey]; int mid = (ly + ry) >> 1; return gcd(queryy(nodex, 2 * nodey, ly, mid, y1, y2) , queryy(nodex, 2 * nodey + 1, mid + 1, ry, y1, y2)); } int queryx(int nodex, int lx, int rx, int x1, int x2, int y1, int y2) { if (x2 < lx || rx < x1) return 0; if (x1 <= lx && rx <= x2) return queryy(nodex, 1, 0, m - 1, y1, y2); int mid = (lx + rx) >> 1; return gcd(queryx(2 * nodex, lx, mid, x1, x2, y1, y2) , queryx(2 * nodex + 1, mid + 1, rx, x1, x2, y1, y2)); } void updatey(int nodex,int xl,int xr,int nodey,int yl,int yr,int x1,int y1,int val){ if(yl==yr){ if(xl==xr){ tree[nodex][nodey]=val; }else{ tree[nodex][nodey]=gcd(tree[2*nodex][nodey],tree[2*nodex+1][nodey]); } return; } int mid=(yl+yr)>>1; if(y1<=mid){ updatey(nodex,xl,xr,2*nodey,yl,mid,x1,y1,val); }else{ updatey(nodex,xl,xr,2*nodey+1,mid+1,yr,x1,y1,val); } tree[nodex][nodey]=gcd(tree[nodex][2*nodey],tree[nodex][2*nodey+1]); } void updatex(int nodex,int xl,int xr,int x1,int y1,int val){ if(xl==xr){ updatey(nodex,xl,xr,1,0,m-1,x1,y1,val); return; } int mid=(xl+xr)>>1; if(x1<=mid){ updatex(2*nodex,xl,mid,x1,y1,val); }else{ updatex(2*nodex+1,mid+1,xr,x1,y1,val); } updatey(nodex,xl,xr,1,0,m-1,x1,y1,val); } void solve(){ cin >> n >> m; st.resize(n, vector<int>(m,0)); tree.resize(4 * n, vector<int>(4 * m)); buildx(1, 0, n - 1); int q; cin >> q; while (q--) { int type; cin >> type; if (type == 2) { int x1, y1, x2, y2; cin >> x1 >> y1 >> x2 >> y2; cout << queryx(1, 0, n - 1, x1, x2, y1, y2) << endl; } else if (type == 1) { int x, y, val; cin >> x >> y >> val; updatex(1, 0, n - 1, x, y, val); } } } int32_t main() { fastio solve(); return 0; }

Compilation message (stderr)

/usr/bin/ld: /tmp/ccZBsD1d.o: in function `main':
grader.c:(.text.startup+0x0): multiple definition of `main'; /tmp/ccOR5oOe.o:game.cpp:(.text.startup+0x0): first defined here
/usr/bin/ld: /tmp/ccZBsD1d.o: in function `main':
grader.c:(.text.startup+0x6a): undefined reference to `init'
/usr/bin/ld: grader.c:(.text.startup+0xcc): undefined reference to `calculate'
/usr/bin/ld: grader.c:(.text.startup+0x136): undefined reference to `update'
collect2: error: ld returned 1 exit status