제출 #1297221

#제출 시각아이디문제언어결과실행 시간메모리
1297221denislav비교 (balkan11_cmp)C++20
0 / 100
560 ms96156 KiB
# include <iostream> # include <vector> # include <algorithm> using namespace std; # include "cmp.h" int delta[11]; void prepare() { delta[0]=1; int p=1; for(int i=1;i<=5;i++) { p*=4; delta[i]=delta[i-1]+p; } } vector<int> to4(int n) { vector<int> ans; for(int i=0;i<6;i++) { ans.push_back(n%4); n/=4; } reverse(ans.begin(),ans.end()); return ans; } void remember(int n) { prepare(); vector<int> v=to4(n); int x=0; for(int i=0;i<6;i++) { x*=4; x+=v[i]; bit_set(delta[i]+x); //cout<<n<<":"<<delta[i]+x<<"\n"; } } int compare(int n) { prepare(); vector<int> v=to4(n); int l=0,r=5,ans=-1; while(l<=r) { int mid=(l+r)/2; int x=0; for(int i=0;i<=mid;i++) { x*=4; x+=v[i]; } if(bit_get(delta[mid]+x)==1) { ans=x; l=mid+1; } else r=mid-1; } if(ans==5) return 0; ans++; if(v[ans]==0) return -1; else if(v[ans]==3) return 1; else if(v[ans]==1) { int x=0; for(int i=0;i<ans;i++) { x*=4; x+=v[i]; } if(bit_get(delta[ans]+x)) return 1; else return -1; } else if(v[ans]==2) { int x=0; for(int i=0;i<ans;i++) { x*=4; x+=v[i]; } x*=4; x+=3; if(bit_get(delta[ans]+x)) return -1; else return 1; } }

컴파일 시 표준 에러 (stderr) 메시지

cmp.cpp: In function 'int compare(int)':
cmp.cpp:100:1: warning: control reaches end of non-void function [-Wreturn-type]
  100 | }
      | ^
#Verdict Execution timeMemoryGrader output
Fetching results...