답안 #43948

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
43948 2018-03-28T13:12:12 Z dhkim0225 비교 (balkan11_cmp) C++14
0 / 100
5415 ms 88020 KB
#include "cmp.h"

void remember(int n) {
	n = n + 1;

	int target = 2048;
	int shift = 10;

	while (true) {
		if (shift == -2) {
			bit_set(4096);
			break;
		}
		if (target < n) {
			bit_set(target);
			target += (1 << shift);
		}
		else if (target > n) {
			bit_set(target);
			target -= (1 << shift);
		}
		else {
			bit_set(target);
			break;
		}
		shift--;
	}
}

int compare(int b) {
	int target = 2048;
	int shift = 10;

	if (bit_get(target)) {
		while (true) {
			if (target == 4095) {
				if (bit_get(4096)) {
					target++;
					break;
				}
				break;
			}
			if (shift < 0)
				break;
			
			if (bit_get(target + (1 << shift)))
				target += (1 << shift);
			else if (bit_get(target - (1 << shift)))
				target -= (1 << shift);
			else
				break;
			shift--;
		}
	}
	if (target - 1> b)
		return -1;
	else if (target - 1 < b)
		return 1;
	else
		return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Incorrect 5415 ms 88020 KB ZERO POINTS: more than 20 accesses in the worst case