답안 #235369

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
235369 2020-05-28T07:19:35 Z crossing0ver 게임 (IOI13_game) C++17
37 / 100
1018 ms 23160 KB
#include<bits/stdc++.h>
#define ll long long
#include "game.h"
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;
}
ll t[100][4*100001] , R, C;
ll t1[2000][4*2001];
void upd (int s,int v,int tl,int tr,int pos,ll val) {
	if (tl == tr) {
		t[s][v] = val;
		return;
	}
	int tm = (tl + tr)/2;
	if (pos <= tm) upd(s,v*2,tl,tm,pos,val);
	else upd(s,v*2|1,tm+1,tr,pos,val);
	t[s][v] = gcd2(t[s][v*2],t[s][v*2|1]);
}
void upd1 (int s,int v,int tl,int tr,int pos,ll val) {
	if (tl == tr) {
		t1[s][v] = val;
		return;
	}
	int tm = (tl + tr)/2;
	if (pos <= tm) upd(s,v*2,tl,tm,pos,val);
	else upd(s,v*2|1,tm+1,tr,pos,val);
	t1[s][v] = gcd2(t1[s][v*2],t1[s][v*2|1]);
}
ll get (int s,int v,int tl,int tr,int l,int r) {
	if (l > tr || r < tl) return 0;
	if (l <= tl && r >= tr) {
		return t[s][v];
	}
	int tm = (tl + tr)/2;
	return gcd2 ( get (s,v*2,tl,tm,l,r), get (s,v*2|1,tm+1,tr,l,r));
}
ll get1 (int s,int v,int tl,int tr,int l,int r) {
	if (l > tr || r < tl) return 0;
	if (l <= tl && r >= tr) {
		return t1[s][v];
	}
	int tm = (tl + tr)/2;
	return gcd2 ( get (s,v*2,tl,tm,l,r), get (s,v*2|1,tm+1,tr,l,r));
}
void update(int P, int Q, long long K) {
	if (C > 2000 || R > 2000)
	upd (P,1,0,100000,Q,K);
	else  upd1 (P,1,0,2000,Q,K);
}
 
long long calculate(int P, int Q, int U, int V) {
    /* ... */
    ll s = 0;
    for (int i = P; i <= U; i++) {
    	if (C > 2000 || R > 2000)
    	s = gcd2(s,get (i,1,0,100000,Q,V));
		else s = s = gcd2(s,get1 (i,1,0,2000,Q,V));	
	}
	return s;
}
 
void init(int R1, int C1) {R = R1; C = C1;}

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;
      ^~~
game.cpp: In function 'long long int calculate(int, int, int, int)':
game.cpp:65:10: warning: operation on 's' may be undefined [-Wsequence-point]
   else s = s = gcd2(s,get1 (i,1,0,2000,Q,V)); 
        ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 384 KB Output is correct
2 Correct 6 ms 2048 KB Output is correct
3 Correct 6 ms 2048 KB Output is correct
4 Correct 5 ms 384 KB Output is correct
5 Correct 5 ms 768 KB Output is correct
6 Correct 5 ms 1920 KB Output is correct
7 Correct 5 ms 384 KB Output is correct
8 Correct 5 ms 768 KB Output is correct
9 Correct 6 ms 1920 KB Output is correct
10 Correct 5 ms 1280 KB Output is correct
11 Correct 5 ms 768 KB Output is correct
12 Correct 5 ms 384 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 384 KB Output is correct
2 Correct 4 ms 384 KB Output is correct
3 Correct 5 ms 384 KB Output is correct
4 Correct 1004 ms 22496 KB Output is correct
5 Correct 649 ms 22520 KB Output is correct
6 Correct 825 ms 23160 KB Output is correct
7 Correct 835 ms 22660 KB Output is correct
8 Correct 675 ms 21244 KB Output is correct
9 Correct 833 ms 22648 KB Output is correct
10 Correct 754 ms 22264 KB Output is correct
11 Correct 5 ms 384 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 384 KB Output is correct
2 Correct 6 ms 2048 KB Output is correct
3 Correct 6 ms 2048 KB Output is correct
4 Correct 4 ms 384 KB Output is correct
5 Correct 5 ms 768 KB Output is correct
6 Correct 5 ms 1920 KB Output is correct
7 Correct 5 ms 384 KB Output is correct
8 Correct 5 ms 768 KB Output is correct
9 Correct 6 ms 1920 KB Output is correct
10 Correct 6 ms 1280 KB Output is correct
11 Correct 5 ms 768 KB Output is correct
12 Runtime error 23 ms 512 KB Execution killed with signal 11 (could be triggered by violating memory limits)
13 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 4 ms 384 KB Output is correct
2 Correct 6 ms 2048 KB Output is correct
3 Correct 6 ms 2048 KB Output is correct
4 Correct 5 ms 384 KB Output is correct
5 Correct 5 ms 768 KB Output is correct
6 Correct 5 ms 1920 KB Output is correct
7 Correct 5 ms 376 KB Output is correct
8 Correct 5 ms 768 KB Output is correct
9 Correct 6 ms 1920 KB Output is correct
10 Correct 6 ms 1280 KB Output is correct
11 Correct 5 ms 768 KB Output is correct
12 Correct 954 ms 22392 KB Output is correct
13 Correct 649 ms 22764 KB Output is correct
14 Correct 796 ms 22968 KB Output is correct
15 Correct 843 ms 22568 KB Output is correct
16 Correct 706 ms 21472 KB Output is correct
17 Correct 838 ms 22788 KB Output is correct
18 Correct 791 ms 22264 KB Output is correct
19 Runtime error 22 ms 512 KB Execution killed with signal 11 (could be triggered by violating memory limits)
20 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 384 KB Output is correct
2 Correct 6 ms 2048 KB Output is correct
3 Correct 6 ms 2048 KB Output is correct
4 Correct 4 ms 384 KB Output is correct
5 Correct 5 ms 768 KB Output is correct
6 Correct 5 ms 1920 KB Output is correct
7 Correct 5 ms 384 KB Output is correct
8 Correct 5 ms 768 KB Output is correct
9 Correct 6 ms 1920 KB Output is correct
10 Correct 6 ms 1280 KB Output is correct
11 Correct 5 ms 768 KB Output is correct
12 Correct 1018 ms 22500 KB Output is correct
13 Correct 648 ms 22648 KB Output is correct
14 Correct 816 ms 23160 KB Output is correct
15 Correct 856 ms 22608 KB Output is correct
16 Correct 698 ms 21496 KB Output is correct
17 Correct 871 ms 22828 KB Output is correct
18 Correct 755 ms 22320 KB Output is correct
19 Runtime error 22 ms 512 KB Execution killed with signal 11 (could be triggered by violating memory limits)
20 Halted 0 ms 0 KB -