제출 #1247349

#제출 시각아이디문제언어결과실행 시간메모리
1247349MateiKing80cmp (balkan11_cmp)C++20
73 / 100
1052 ms90848 KiB
#include "cmp.h" #include <bits/stdc++.h> int gib(int x, int bit) { if (x & (1 << bit)) return 1; return 0; } void remember(int a) { bit_set(69 + (a & ((1 << 12) - (1 << 6)))); for (int i = 0; i < 6; i ++) { int x = i * 4 + 1 + gib(a, 2 * i) + 2 * gib(a, 2 * i + 1); bit_set(x); } } int compare(int b) { if (bit_get(69 + (b & ((1 << 12) - (1 << 6))))) { for (int i = 2; i >= 0; i --) { int x = i * 4 + 1 + gib(b, 2 * i) + 2 * gib(b, 2 * i + 1); if (bit_get(x)) continue; if (bit_get(i * 4 + 1 + gib(b, 2 * i) + 2 * (1 - gib(b, 2 * i + 1))) || bit_get(i * 4 + 1 + (1 - gib(b, 2 * i)) + 2 * (1 - gib(b, 2 * i + 1)))) { if (gib(b, 2 * i + 1)) return 1; return -1; } if (gib(b, 2 * i)) return 1; return -1; } } else { for (int i = 5; i >= 3; i --) { int x = i * 4 + 1 + gib(b, 2 * i) + 2 * gib(b, 2 * i + 1); if (bit_get(x)) continue; if (bit_get(i * 4 + 1 + gib(b, 2 * i) + 2 * (1 - gib(b, 2 * i + 1))) || bit_get(i * 4 + 1 + (1 - gib(b, 2 * i)) + 2 * (1 - gib(b, 2 * i + 1)))) { if (gib(b, 2 * i + 1)) return 1; return -1; } if (gib(b, 2 * i)) return 1; return -1; } } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...