Submission #349755

#TimeUsernameProblemLanguageResultExecution timeMemory
349755juggernautGame (IOI13_game)C++14
63 / 100
897 ms256004 KiB
#include"game.h" #include<bits/stdc++.h> #ifndef EVAL #include"grader.c" #endif using namespace std; typedef long long ll; ll n,m; vector<vector<ll>>t; void init(int R,int C){ n=R,m=C; t.assign(n*2,vector<ll>(m*2,0)); } void update(int x,int y,ll val){ for(x+=n;x>=1;x>>=1){ int i=y+m; for(;i>0;i>>=1){ if(x>=n&&i>=m)t[x][i]=val; else if(i>=m)t[x][i]=__gcd(t[x<<1][i],t[x<<1|1][i]); t[x][i>>1]=__gcd(t[x][i],t[x][i^1]); } } } ll calculate(int x1,int y1,int x2,int y2){ ll res=0; for(x1+=n,x2+=n;x1<=x2;x1>>=1,x2>>=1){ if(x1&1){ for(int l=y1+m,r=y2+m;l<=r;l>>=1,r>>=1){ if(l&1)res=__gcd(res,t[x1][l++]); if(!(r&1))res=__gcd(res,t[x1][r--]); } x1++; }if(!(x2&1)){ for(int l=y1+m,r=y2+m;l<=r;l>>=1,r>>=1){ if(l&1)res=__gcd(res,t[x2][l++]); if(!(r&1))res=__gcd(res,t[x2][r--]); } x2--; } } return 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...