#include <bits/stdc++.h>
const int MAXN = 1e3 + 5;
int cnt = 1, a[MAXN];
int encode(int n, int x, int y) {
if (cnt == 1) {
for (int i = 0; i < (1 << 12); i++) {
if (__builtin_popcount(i) != 6)
continue;
a[cnt++] = i;
}
}
for (int i = 0; i < 12; i++) {
if ((a[y] >> i) & 1)
continue;
if (!((a[x] >> i) & 1))
continue;
return i+1;
}
return -1;
}
#include <bits/stdc++.h>
const int MAXN = 1e3 + 5;
int cnt = 1, a[MAXN];
int decode(int n, int q, int h) {
if (cnt == 1) {
for (int i = 0; i < (1 << 12); i++) {
if (__builtin_popcount(i) != 6)
continue;
a[cnt++] = i;
}
}
if ((a[q] >> (h-1)) & 1)
return 1;
else
return 0;
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1593 ms |
79600 KB |
Output is correct - maxh = 12 |
2 |
Correct |
1584 ms |
79680 KB |
Output is correct - maxh = 12 |