#include "cmp.h"
const int SHIFT = (1 << 12);
void remember(int n) {
int cur = SHIFT;
for (int i = 11; i >= 0; i--) {
if (n & (1 << i)) {
cur += (1 << i);
bit_set(cur);
}
}
}
int compare(int b) {
int l = 0, r = 12;
int cur = 0;
while (l < r) {
const int md = (l + r) / 2;
cur = SHIFT;
for (int i = 11; i >= md; i--)
if (b & (1 << i))
cur += (1 << i);
if (bit_get(cur))
l = 12-md;
else
r = 12-(md - 1);
}
if (l == 12) return 0;
l = 12 - l;
if (b & (1 << (l - 1))) return 1;
return -1;
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Execution timed out |
10079 ms |
106320 KB |
Time limit exceeded |