This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |