提交时间:2024-10-22 15:19:07
运行 ID: 33784
//100 #include<bits/stdc++.h> using namespace std; #define int long long const int MAXN=260,N=60,V=256; int read(){int x=0,f=1;char c=getchar();while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();}while(c<='9'&&c>='0')x=x*10+c-'0',c=getchar();return x*f;} int ans,l,r,k; int get(int x){ for(int i=N;~i;i--)if(x&(1ll<<i))return 1ll<<i; return 0; } void slv(){ l=read(),r=read(); for(int i=N;i>=0;i--){ if((l&(1ll<<i))&&(r&(1ll<<i)))l-=1ll<<i,r-=1ll<<i; else if((l&(1ll<<i))!=(r&(1ll<<i))){ k=1ll<<i; break; } } if(l==r){ printf("1\n"); return; } ans=min(k,((r!=k?get(r-k)-1:0)|r)-l+1); printf("%lld\n",ans+k-l); } signed main(){ int _=read();while(_--) slv(); return 0; }