int encode(int n, int x, int y) {
static int db[921];
static bool chk = false;
if (!chk) {
for (int i = 1, j = (1 << 6) - 2; i <= 920; ++i) {
while (__builtin_popcount(++j) != 6);
db[i] = j;
}
}
chk = true;
for (int i = 0; i < 12; ++i) {
if (((db[x] >> i) & 1) == 1 && ((db[y] >> i) & 1) == 0) return i + 1;
}
return -1;
}
int decode(int n, int q, int h) {
static int db[921];
static bool chk = false;
if (!chk) {
for (int i = 1, j = (1 << 6) - 2; i <= 920; ++i) {
while (__builtin_popcount(++j) != 6);
db[i] = j;
}
}
chk = true;
return (db[q] >> (h - 1)) & 1;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1849 ms |
25676 KB |
Output is correct - maxh = 12 |
2 |
Correct |
1825 ms |
25676 KB |
Output is correct - maxh = 12 |