제출 #44069

#제출 시각아이디문제언어결과실행 시간메모리
44069dhkim0225비교 (balkan11_cmp)C++14
91 / 100
2204 ms94584 KiB
#include "cmp.h"

void remember(int n) {
	for (int i = 4; i >= 1; i--) {
		if (n >= 8) {
			int r = n % 8;
			n /= 8;
			bit_set(i * 1000 + r);
		}
		else if (n == 0)
			bit_set(i * 1000);
		else {
			bit_set(i * 1000 + n);
			n = 0;
		}
	}
}

int compare(int b) {
	int base4[5] = { 0, };
	for (int i = 4; i >= 1; i--) {
		if (b >= 8) {
			base4[i] = (b % 8);
			b /= 8;
		}
		else {
			base4[i] = b;
			break;
		}
	}
	for (int i = 1; i <= 4; i++) {
		if (bit_get(1000 * i + base4[i]))
			continue;
		else {
			if (base4[i] >= 4) {
				for (int j = base4[i] + 1; j < 8; j++) {
					if (bit_get(1000 * i + j))
						return -1;
				}
				return 1;
			}
			else {
				for (int j = base4[i] - 1; j >= 0; j--) {
					if (bit_get(1000 * i + j))
						return 1;
				}
				return -1;
			}
		}
	}
	return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...