int binary_search(const unsigned *a,const int n, unsigned x)
{
static const unsigned a = 0;
static const unsigned b = 99999999;
register unsigned l = a, r = b;
for(;;) {
register unsigned mid = l + r >> 1;
if ( a[mid] == x ) return mid;
if ( a[mid] > x ) r = mid - 1;
else l = mid + 1;
}
}