int ans[924], pos;
int encode (int n, int x, int y) {
if(pos == 0){
for(int i=0;i<(1<<12);i++){
int tmp = 0, tt = i;
while(tt >= 1) tmp += (tt%2), tt /= 2;
if(tmp == 6) ans[pos++] = i;
}
}
x = ans[x-1], y = ans[y-1];
for(int i=0;i<12;i++) if(x>>i&1 and !(y>>i&1)) return i+1;
return 0;
}
int ans[924], pos;
int decode (int n, int q, int h) {
if(pos == 0){
for(int i=0;i<(1<<12);i++){
int tmp = 0, tt = i;
while(tt >= 1) tmp += (tt%2), tt /= 2;
if(tmp == 6) ans[pos++] = i;
}
}
return (ans[q-1]>>(h-1)&1);
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
3847 ms |
24440 KB |
Output is correct - maxh = 12 |
2 |
Correct |
4486 ms |
24312 KB |
Output is correct - maxh = 12 |