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>
#define mid (l+r)/2
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;
}
const int N=1e5+55;
long long tree[N*4][20];
int n,m;
void init(int R, int C)
{
n=R;
m=C;
}
void up(int l , int r , int node , int ind , long long val , int lev)
{
if(l==r&&l==ind)
{
tree[node][lev]=val;
return ;
}
if(ind<=mid)
up(l,mid,node*2,ind,val,lev);
else
up(mid+1,r,node*2+1,ind,val,lev);
tree[node][lev]=gcd2(tree[node*2][lev],tree[node*2+1][lev]);
}
long long query(int l , int r , int node , int x , int y , int lev)
{
if(x<=l&&r<=y)
return tree[node][lev];
if(l>y||r<x)
return 0;
long long temp1=0;
long long temp2=0;
temp1=query(l,mid,node*2,x,y,lev);
temp2=query(mid+1,r,node*2+1,x,y,lev);
return gcd2(temp1,temp2);
}
void update(int P, int Q, long long K)
{
up(0,m-1,1,Q,K,P);
}
long long calculate(int P, int Q, int U, int V)
{
if(P>U)
swap(P,U);
if(Q>V)
swap(Q,V);
long long ans;
for(int i=P;i<=Q;i++)
{
if(i==P)
ans=query(0,m-1,1,U,V,i);
else
ans=gcd2(ans,query(0,m-1,1,U,V,i));
}
return ans;
}
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;
^~~
game.cpp: In function 'long long int calculate(int, int, int, int)':
game.cpp:77:12: warning: 'ans' may be used uninitialized in this function [-Wmaybe-uninitialized]
return ans;
^~~
# | 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... |