#include #include int cmp(const void *a,const void *b){ return *(int *)a-*(int *)b; } int calc(int *a,int n,int shift){ if(n<=1) return 0; if(shift==0) return (a[0]&0x01)==(a[n-1]&0x01)?0:1; if(((a[0]>>shift)&0x01)==((a[n-1]>>shift)&0x01)) return calc(a,n,shift-1); int r; for(r=0;((a[r]>>shift)&0x01)==0;r++); int x=calc(a,r,shift-1); int y=calc(a+r,n-r,shift-1); return (1<