#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 time | Memory | Grader output |
---|
Fetching results... |