이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include<bits/stdc++.h>
#include "game.h"
using namespace std;
int r, c;
void init(int R, int C)
{
r = R;
c = C;
}
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;
}
long long t[2005][8005];
int line, ql, qr;
long long query(int i, int l, int r)
{
if(ql > r || qr < l)return 0;
if(ql <= l && r <= qr)return t[line][i];
int mid = (l + r)/2;
return gcd2(query(2*i, l, mid), query(2*i+1, mid+1, r));
}
int pnt;
long long val;
void upd(int i, int l, int r)
{
if(l == r)
{
t[line][i] = val;
return;
}
int mid = (l + r)/2;
if(pnt <= mid)upd(2*i, l, mid);
else upd(2*i+1, mid+1, r);
t[line][i] = gcd2(t[line][2*i], t[line][2*i+1]);
}
void update(int P, int Q, long long K)
{
P ++;
Q ++;
line = P;
pnt = Q;
val = K;
upd(1, 1, c);
}
long long calculate(int P, int Q, int U, int V)
{
P ++;
Q ++;
U ++;
V ++;
long long ans = 0;
ql = Q;
qr = V;
for (line = P; line <= U; ++ line)
ans = gcd2(ans, query(1, 1, c));
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... |