답안 #343737

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
343737 2021-01-04T12:48:22 Z amunduzbaev 질문 (CEOI14_question_grader) C++14
100 / 100
4486 ms 24440 KB
int ans[924], pos;

int encode (int n, int x, int y) {
	
	if(pos == 0){
		for(int i=0;i<(1<<12);i++){
			int tmp = 0, tt = i;
			while(tt >= 1) tmp += (tt%2), tt /= 2;
			if(tmp == 6) ans[pos++] = i;
		}
	}
	
	x = ans[x-1], y = ans[y-1];
	for(int i=0;i<12;i++) if(x>>i&1 and !(y>>i&1)) return i+1;
	return 0;
}
int ans[924], pos;

int decode (int n, int q, int h) {
	
	if(pos == 0){
		for(int i=0;i<(1<<12);i++){
			int tmp = 0, tt = i;
			while(tt >= 1) tmp += (tt%2), tt /= 2;
			if(tmp == 6) ans[pos++] = i;
		}
	}
	
	return (ans[q-1]>>(h-1)&1);
}
# 결과 실행 시간 메모리 Grader output
1 Correct 3847 ms 24440 KB Output is correct - maxh = 12
2 Correct 4486 ms 24312 KB Output is correct - maxh = 12