#include "cmp.h"
#include "bits/stdc++.h"
using namespace std;
const int mxl=12;
int rev(int a){
int b=0;
for(int i=0;i<mxl;i++)
b=b<<1|a&1,a>>=1;
return b;
}
int cod(int a,int i){
return a+(1<<(i+1));
}
void remember(int n){
int x=n;
n=rev(n);
for(int i=0,a=0;i<mxl;i+=2){
a=a|n&1<<i|n&1<<(i+1);
bit_set(cod(a,i));
}
}
int compare(int b){
int x=b;
b=rev(b);
vector<int>p;
for(int i=0,a=0;i<mxl;i+=2){
a=a|b&1<<i|b&1<<(i+1);
p.push_back(a);
}
int bs=-1;
for(int l=0,r=p.size()-1;l<=r;){
int mi=(l+r)>>1;
if(bit_get(cod(p[mi],mi<<1)))l=mi+1;
else {
r=mi-1,bs=mi;
}
}
if(bs==-1)return 0;
else{
if(p[bs]&1<<(bs*2)){
int y=p[bs]|1<<(bs*2+1);
return bit_get(cod(y,bs<<1))?-1:1;
}else{
int y=p[bs]&(((1<<mxl)-1)^1<<(bs*2+1));
return bit_get(cod(y,bs<<1))?1:-1;
}
}
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |