int encode (int n, int x, int y) {
int pos = -1;
int sum1 = 0, sum2 = 0;
for(int i = 0 ; i < 10; i++){
int a = (x & (1<<i)) != 0;
int b = (y & (1<<i)) != 0;
sum1 += a;
sum2 += b;
if(a > b){
pos = i;
break;
}
}
if(pos != -1) return pos+1;
if(sum1 == 1 && sum2 == 9) return 11;
for(int i = 0 ; i < 3; i++){
int a = (sum1 & (1<<i)) != 0;
int b = (sum2 & (1<<i)) != 0;
if(a < b) {
pos = i;
break;
}
}
return 10 + pos + 1;
}
int decode (int n, int q, int h) {
if(h <= 10){
int a = (q & (1<<(h-1))) != 0;
return a;
}
int sum = 0;
for(int i = 0 ; i < 10; i++) {
int a = (q & (1<<i)) != 0;
sum += a;
}
if(sum == 9) return 0;
if(sum == 1) return 1;
h -= 10;
int a = (sum & (1<<(h-1))) != 0;
return !a;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
1283 ms |
25672 KB |
wrong answer |
2 |
Incorrect |
1216 ms |
25672 KB |
wrong answer |