#include #include #include #include #include #include using namespace std; int T; long long a,b,c,d; long long MAX(long long x,long long y) { return x>y?x:y; } long long MIN(long long x,long long y) { return x=0;i--) { long long now=(long long)1<<(i); int x0,x1,y0,y1; x0=x1=y0=y1=0; if(b>=now)x1=1; if(d>=now)y1=1; if(now-1>=a)x0=1; if(now-1>=c)y0=1; if(x1==0 && y1==0)continue; if(x0==0 && y0==0) { a-=now; b-=now; c-=now; d-=now; continue; } if(x0==1 && y1==1) { c-=now; d-=now; b=MIN(b,now-1); ans+=now; } else if(x1==1 && y0==1) { a-=now; b-=now; d=MIN(d,now-1); ans+=now; } else if(x0==0 && y0==0) { b=MIN(b,now-1); d=MIN(d,now-1); } } cout<>a>>b>>c>>d; if(a>c)solve(a,b,c,d); else solve(c,d,a,b); } return 0; }