这是代码,大家能否帮我看看为什么对。
#define fer(i,a,n) for (int i=(a);i<=(n);++i)
#define rep(i,n,a) for (int i=(n);i>=(a);--i)
void solve() {
ll n,x;
cin>>n>>x;
fer(i,0,60)
if(!(n>>i&1)&&(x>>i&1)){none return;}
ll ans=0;
fer(i,0,60)if((n>>i&1)&&(x>>i&1))ans+=(1ll<<i);
rep(i,60,0)if((n>>i&1)&&!(x>>i&1)){ans|=(1ll<<(i+1));break;}
if((ans&n)>=x&&(ans==n||((ans-1)&n)>=x))cout<<ans<<'\n';
else none
}