제출 #1314333

#제출 시각아이디문제언어결과실행 시간메모리
1314333coolboy19521비교 (balkan11_cmp)C++17
100 / 100
2101 ms98456 KiB
#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 timeMemoryGrader output
Fetching results...