# |
Submission time |
Handle |
Problem |
Language |
Result |
Execution time |
Memory |
62472 |
2018-07-28T18:04:07 Z |
ggoh |
Game (IOI13_game) |
C++ |
|
4213 ms |
257024 KB |
#include "game.h"
#include<algorithm>
#include<vector>
int a,b,t;
struct A{
int left,right,ynum;
};
struct B{
int left,right;long long val;
};
std::vector<A>xTree;
std::vector<B>yTree;
long long gcd2(long long xx,long long yy){
if(yy==0)return xx;
return gcd2(yy,xx%yy);
}
void yup(int num,int s,int e,int num1,int num2,int yco,long long v)
{
if(s==e){
if(num1==-1&&num2==-1)yTree[num].val=v;
else yTree[num].val=gcd2(num1==-1?0:yTree[num1].val,num2==-1?0:yTree[num2].val);
return ;
}
if((s+e)/2>=yco)
{
if(yTree[num].left==-1)
{
yTree[num].left=yTree.size();
yTree.push_back({-1,-1,0});
}
if(num1>=0)num1=yTree[num1].left;
if(num2>=0)num2=yTree[num2].left;
yup(yTree[num].left,s,(s+e)/2,num1,num2,yco,v);
}
else
{
if(yTree[num].right==-1)
{
yTree[num].right=yTree.size();
yTree.push_back({-1,-1,0});
}
if(num1>=0)num1=yTree[num1].right;
if(num2>=0)num2=yTree[num2].right;
yup(yTree[num].right,(s+e)/2+1,e,num1,num2,yco,v);
}
yTree[num].val=gcd2(yTree[num].left>=0?yTree[yTree[num].left].val:0,yTree[num].right>=0?yTree[yTree[num].right].val:0);
}
void xup(int num,int s,int e,int xco,int yco,long long v)
{
if(xTree[num].ynum==-1)
{
xTree[num].ynum=yTree.size();
yTree.push_back({-1,-1,0});
}
if(s==e)
{
yup(xTree[num].ynum,0,b-1,-1,-1,yco,v);
return ;
}
if((s+e)/2>=xco)
{
if(xTree[num].left==-1)
{
xTree[num].left=xTree.size();
xTree.push_back({-1,-1,-1});
}
xup(xTree[num].left,s,(s+e)/2,xco,yco,v);
}
else
{
if(xTree[num].right==-1)
{
xTree[num].right=xTree.size();
xTree.push_back({-1,-1,-1});
}
xup(xTree[num].right,(s+e)/2+1,e,xco,yco,v);
}
yup(xTree[num].ynum,0,b-1,xTree[num].left==-1?-1:xTree[xTree[num].left].ynum,xTree[num].right==-1?-1:xTree[xTree[num].right].ynum,yco,v);
}
long long yans(int num,int s,int e,int py,int qy)
{
if(s>qy||e<py)return 0ll;
if(py<=s&&e<=qy)return yTree[num].val;
long long l=0,r=0;
if(yTree[num].left>=0)l=yans(yTree[num].left,s,(s+e)/2,py,qy);
if(yTree[num].right>=0)r=yans(yTree[num].right,(s+e)/2+1,e,py,qy);
return gcd2(l,r);
}
long long xans(int num,int s,int e,int px,int qx,int py,int qy)
{
if(s>qx||e<px)return 0ll;
if(px<=s&&e<=qx)
{
if(xTree[num].ynum>=0)return yans(xTree[num].ynum,0,b-1,py,qy);
else return 0ll;
}
long long l=0,r=0;
if(xTree[num].left>=0)l=xans(xTree[num].left,s,(s+e)/2,px,qx,py,qy);
if(xTree[num].right>=0)r=xans(xTree[num].right,(s+e)/2+1,e,px,qx,py,qy);
return gcd2(l,r);
}
void init(int R, int C)
{
a=R;b=C;
xTree.push_back({-1,-1,0});
yTree.push_back({-1,-1,0});
}
void update(int P, int Q, long long K)
{
xup(0,0,a-1,P,Q,K);
}
long long calculate (int P, int Q, int U, int V)
{
return xans(0,0,a-1,P,U,Q,V);
}
Compilation message
grader.c: In function 'int main()':
grader.c:18:6: warning: variable 'res' set but not used [-Wunused-but-set-variable]
int res;
^~~
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
3 ms |
376 KB |
Output is correct |
2 |
Correct |
2 ms |
612 KB |
Output is correct |
3 |
Correct |
4 ms |
656 KB |
Output is correct |
4 |
Correct |
3 ms |
656 KB |
Output is correct |
5 |
Correct |
2 ms |
656 KB |
Output is correct |
6 |
Correct |
4 ms |
656 KB |
Output is correct |
7 |
Correct |
3 ms |
656 KB |
Output is correct |
8 |
Correct |
2 ms |
656 KB |
Output is correct |
9 |
Correct |
3 ms |
656 KB |
Output is correct |
10 |
Correct |
4 ms |
656 KB |
Output is correct |
11 |
Correct |
3 ms |
656 KB |
Output is correct |
12 |
Correct |
3 ms |
748 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
748 KB |
Output is correct |
2 |
Correct |
2 ms |
748 KB |
Output is correct |
3 |
Correct |
3 ms |
748 KB |
Output is correct |
4 |
Correct |
1048 ms |
17552 KB |
Output is correct |
5 |
Correct |
951 ms |
21668 KB |
Output is correct |
6 |
Correct |
928 ms |
23052 KB |
Output is correct |
7 |
Correct |
1166 ms |
23640 KB |
Output is correct |
8 |
Correct |
653 ms |
27524 KB |
Output is correct |
9 |
Correct |
999 ms |
33068 KB |
Output is correct |
10 |
Correct |
972 ms |
36884 KB |
Output is correct |
11 |
Correct |
2 ms |
36884 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
3 ms |
36884 KB |
Output is correct |
2 |
Correct |
5 ms |
36884 KB |
Output is correct |
3 |
Correct |
3 ms |
36884 KB |
Output is correct |
4 |
Correct |
3 ms |
36884 KB |
Output is correct |
5 |
Correct |
2 ms |
36884 KB |
Output is correct |
6 |
Correct |
3 ms |
36884 KB |
Output is correct |
7 |
Correct |
4 ms |
36884 KB |
Output is correct |
8 |
Correct |
2 ms |
36884 KB |
Output is correct |
9 |
Correct |
4 ms |
36884 KB |
Output is correct |
10 |
Correct |
3 ms |
36884 KB |
Output is correct |
11 |
Correct |
3 ms |
36884 KB |
Output is correct |
12 |
Correct |
2152 ms |
46084 KB |
Output is correct |
13 |
Correct |
3474 ms |
46084 KB |
Output is correct |
14 |
Correct |
508 ms |
46084 KB |
Output is correct |
15 |
Correct |
3936 ms |
53764 KB |
Output is correct |
16 |
Correct |
307 ms |
66048 KB |
Output is correct |
17 |
Correct |
1756 ms |
66768 KB |
Output is correct |
18 |
Correct |
3035 ms |
77236 KB |
Output is correct |
19 |
Correct |
2607 ms |
86004 KB |
Output is correct |
20 |
Correct |
2550 ms |
90944 KB |
Output is correct |
21 |
Correct |
2 ms |
90944 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
90944 KB |
Output is correct |
2 |
Correct |
5 ms |
90944 KB |
Output is correct |
3 |
Correct |
4 ms |
90944 KB |
Output is correct |
4 |
Correct |
3 ms |
90944 KB |
Output is correct |
5 |
Correct |
3 ms |
90944 KB |
Output is correct |
6 |
Correct |
3 ms |
90944 KB |
Output is correct |
7 |
Correct |
3 ms |
90944 KB |
Output is correct |
8 |
Correct |
3 ms |
90944 KB |
Output is correct |
9 |
Correct |
4 ms |
90944 KB |
Output is correct |
10 |
Correct |
4 ms |
90944 KB |
Output is correct |
11 |
Correct |
2 ms |
90944 KB |
Output is correct |
12 |
Correct |
1186 ms |
90944 KB |
Output is correct |
13 |
Correct |
803 ms |
94804 KB |
Output is correct |
14 |
Correct |
990 ms |
96332 KB |
Output is correct |
15 |
Correct |
1200 ms |
96824 KB |
Output is correct |
16 |
Correct |
663 ms |
101044 KB |
Output is correct |
17 |
Correct |
1029 ms |
106388 KB |
Output is correct |
18 |
Correct |
925 ms |
107512 KB |
Output is correct |
19 |
Correct |
1819 ms |
110176 KB |
Output is correct |
20 |
Correct |
3416 ms |
110176 KB |
Output is correct |
21 |
Correct |
423 ms |
110176 KB |
Output is correct |
22 |
Correct |
3784 ms |
110176 KB |
Output is correct |
23 |
Correct |
319 ms |
115816 KB |
Output is correct |
24 |
Correct |
1955 ms |
115816 KB |
Output is correct |
25 |
Correct |
3244 ms |
116332 KB |
Output is correct |
26 |
Correct |
2490 ms |
116972 KB |
Output is correct |
27 |
Correct |
2516 ms |
116972 KB |
Output is correct |
28 |
Correct |
1577 ms |
227312 KB |
Output is correct |
29 |
Runtime error |
4213 ms |
257024 KB |
Memory limit exceeded: We have a known bug that the memory usage is measured incorrectly (possibly because of Meltdown/Spectre patch), so your solution may be correct. Please submit again. Sorry for the inconvenience. |
30 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Runtime error |
3 ms |
257024 KB |
Memory limit exceeded: We have a known bug that the memory usage is measured incorrectly (possibly because of Meltdown/Spectre patch), so your solution may be correct. Please submit again. Sorry for the inconvenience. |
2 |
Halted |
0 ms |
0 KB |
- |