#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define _int64 long long _int64 a[2][110000]; _int64 b[2][110000]; int cnt[110000]; _int64 base; bool pcmp(_int64 x,_int64 y) { return (x&base)<(y&base); } int main() { int i,l,t,n,j,x,y,now; _int64 ans,left,right,mid,tot; scanf("%d",&t); for (l=0;l=0;i--) { /* if (i<=4) { cout<=0;j--) { while ((right1) { mid=(left+right)/2; if ((b[now][mid]&(1LL<<(i-1)))!=0) right=mid; else left=mid; } j=0; x=0;y=right; while ((x<=left)||(y<=n-1)) { if (x>left) { b[1-now][j]=b[now][y]; j++; y++; continue; } if (y>n-1) { b[1-now][j]=b[now][x]; j++; x++; continue; } if ((b[now][x]&base)<(b[now][y]&base)) { b[1-now][j]=b[now][x]; j++; x++; } else { b[1-now][j]=b[now][y]; j++; y++; } } left=-1;right=n; while (right-left>1) { mid=(left+right)/2; if ((a[now][mid]&(1LL<<(i-1)))!=0) right=mid; else left=mid; } j=0; x=0;y=right; while ((x<=left)||(y<=n-1)) { if (x>left) { a[1-now][j]=a[now][y]; j++; y++; continue; } if (y>n-1) { a[1-now][j]=a[now][x]; j++; x++; continue; } if ((a[now][x]&base)<(a[now][y]&base)) { a[1-now][j]=a[now][x]; j++; x++; } else { a[1-now][j]=a[now][y]; j++; y++; } } now=1-now; } cout<<"Case #"<