提交时间:2024-03-09 15:54:45

运行 ID: 136875

#include<iostream> using namespace std; int a,b,c,d,e,f,g,i,j,k; long long h[100005]; bool x[100005],y[100005],z[100005]; void aa() { bool o=0; for(d=1;d<=g;d++) if(x[d]!=y[d]) { o=1; break; } if(o==0||f>g) return ; for(d=1;d<=f+1;d++) { if(x[d]==0) { if(d==f+1) f++; i++; x[d]=1; if(i<=a) { j++; } aa(); return ; } else { x[d]=0; i--; } } } int main() { cin>>a>>b>>c; e=1; for(d=1;d<=100000;d++) { if(e>b) f=d-1; if(e>c) { g=d-1; break; } h[d]=e; e*=2; } for(d=f;d>=1;d--) { if(b>=h[d]) { x[d]=1; b-=h[d]; i++; } } for(d=g;d>=1;d--) { if(c>=h[d]) { y[d]=1; c-=h[d]; } else y[d]=0; } aa(); cout<<j; return 0; }