#include "cmp.h"
void remember(int n) {
int k=n/64;
bit_set(k+1);
for(int i=0;i<12;i++){
if(n&1)
bit_set(64+i+1);
n/=2;
}
}
int compare(int b) {
int r=1;
int a=0;
for(int i=0;i<12;i++){
if(bit_get(64+i+1))
a+=r;
r*=2;
}
if(b<a)
return -1;
if(b==a)
return 0;
return 1;
// int k=b/64;
// if(bit_get(k+1)){
// b%=64;
// int r=1;
// int a=0;
// for(int i=0;i<6;i++){
// if(bit_get(64+i+1))
// a+=r;
// r*=2;
// }
// if(b<a)
// return -1;
// else if(b==a)
// return 0;
// return 1;
// }
// b/=64;
// int r=64;
// int a=0;
// for(int i=6;i<12;i++){
// if(bit_get(64+i+1))
// a+=r;
// r*=2;
// }
// if(b<a)
// return -1;
// else if(b==a)
// return 0;
// return 1;
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
2511 ms |
82680 KB |
ZERO POINTS: more than 20 accesses in the worst case |