# |
Submission time |
Handle |
Problem |
Language |
Result |
Execution time |
Memory |
480795 |
2021-10-18T04:32:40 Z |
minhcool |
cmp (balkan11_cmp) |
C++17 |
|
758 ms |
96004 KB |
#include "cmp.h"
#define set_bit bit_set
#define get_bit bit_get
void remember(int n) {
//edit this
set_bit(1 + ((n >> 10) & 3));
set_bit(5 + ((n >> 8) & 15));
set_bit(21 + ((n >> 6) & 63));
set_bit(85 + ((n >> 4) & 255));
set_bit(341 + ((n >> 2) & 1023));
set_bit(1365 + (n & 4095));
}
int compare(int b) {
//edit this
int l = 1, r = 6;
while(l < r){
int mid = (l + r) >> 1;
int pw = 1, sum = 0;
for(int i = 1; i <= mid; i++){
sum += pw;
pw *= 4;
}
int temp = (b >> (12 - 2 * mid)) & (pw - 1);
if(!get_bit(sum + temp)) l = mid + 1;
else r = mid;
}
int tempor = (b >> (12 - 2 * l)) & 3;
if(tempor >= 2){
for(int i = tempor + 1; i <= 3; i++){
b += (1LL << (12 - 2 * l));
int sum = 0, pw = 1;
for(int i = 1; i <= l; i++){
sum += pw;
pw *= 4;
}
int temp = (b >> (12 - 2 * l)) & (pw - 1);
if(get_bit(sum + temp)) return -1;
}
return 0;
}
else{
for(int i = tempor - 1; i >= 0; i--){
b -= (1LL << (12 - 2 * l));
int sum = 0, pw = 1;
for(int i = 1; i <= l; i++){
sum += pw;
pw *= 4;
}
int temp = (b >> (12 - 2 * l)) & (pw - 1);
if(get_bit(sum + temp)) return 1;
}
return 0;
}
//return 0;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
758 ms |
96004 KB |
ZERO POINTS: For a=3040 and b=3318, correct answer is 1, got 0 |