#define FOR(i, a, b) for (int i = (a); i <= (b); i++)
int firstBit (int x) {
FOR(i, 0, 15)
if (x & (1<<i))
return i;
return -1;
}
int encode (int n, int x, int y) {
//int x, y;
// cin >> x >> y;
int b = firstBit(x ^ y);
//f (b == -1) exit(1);
int code = b<<1;
if (x & (1<<b)) code++;
// cout << code << "\n";
return code;
}
int decode (int n, int q, int h) {
//int q, h;
// cin >> q >> h;
//if (h > 20) exit(1);
bool one = false;
if (h&1) one = true;
h >>= 1;
bool has = false;
if (q & (1<<h)) has = true;
//if (has == one) cout << "yes\n";
//ese cout << "no\n";
if (has==one) return 1;
else return 0;
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
0 ms |
488 KB |
the encoded value must be greater than or equal to 1 |
2 |
Incorrect |
0 ms |
492 KB |
the encoded value must be greater than or equal to 1 |