a[100000]; c(int*a,int*b){return*a-*b;} x(int*a,int n,int i){ if(i==-1)return 0; if(~(*a^a[n-1])>>i&1)return x(a,n,i-1); int l=0,u=n,m; for(;u-l>1;a[m=(l+u)/2]>>i&1?u=m:(l=m)); return 1<