int sets[10001], id = 1;
int encode (int n, int x, int y) {
if(id == 1){
for(int i = 0; i < (1 << 12); ++i){
if(__builtin_popcount(i) == 6)
sets[id++] = i;
}
}
x = sets[x];
y = sets[y];
for(int i = 0; i < 12; ++i){
if((x&(1 << i)) && !(y&(1 << i)))
return i + 1;
}
return 0;
}
int sets[10001], id = 1;
int decode (int n, int q, int h) {
if(id == 1){
for(int i = 0; i < (1 << 12); ++i){
if(__builtin_popcount(i) == 6)
sets[id++] = i;
}
}
q = sets[q];
return ((q>>(h-1))&1);
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
4673 ms |
24524 KB |
Output is correct - maxh = 12 |
2 |
Correct |
4379 ms |
24480 KB |
Output is correct - maxh = 12 |