int arr[924],pos;//C(12,6)
int encode (int n, int x, int y) {
if(!pos){
for(int i=0,x,y;i<4096;i++){x=i;y=0;
while(x>=1)
y+=(x%2),x/=2;
if(y==6)arr[pos++]=i;
}
}
for(int i=0;i<12;i++)
if((arr[x-1]>>i&1) and !(arr[y-1]>>i&1))
return i+1;
}
int arr[924],pos;
int decode (int n, int q, int h){
if(!pos){
for(int i=0,x,y;i<4096;i++){x=i;y=0;
while(x>=1)
y+=(x%2),x/=2;
if(y==6)arr[pos++]=i;
}
}
return (arr[q-1]>>(h-1)&1);
}
Compilation message
encoder.cpp: In function 'int encode(int, int, int)':
encoder.cpp:13:1: warning: control reaches end of non-void function [-Wreturn-type]
13 | }
| ^
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
4705 ms |
24480 KB |
Output is correct - maxh = 12 |
2 |
Correct |
4118 ms |
24448 KB |
Output is correct - maxh = 12 |