#include <stdio.h>
#include <stdlib.h>
int binary_search(const int a[], int n, int x)
{
int pl=0;
int pr=n-1;
do
{
int pc=(pl+pr)/2;
if(a[pc]==x)
return pc;
else if (a[pc]<x)
pl=pc+1;
else
pr=pc-1;
}while(pl<=pr);
return -1;
}
int main(void) {
int n,x,i;
int *a;
int ans = -1;
a
= (int*)malloc(sizeof(int)*n
); if(a==NULL){
return -1;
}
for(i=0;i<n;i++){
}
ans = binary_search(a,n,x);
if(ans
!= -1) printf("a[%d] = %d\n",ans
,a
[ans
]); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KaW50IGJpbmFyeV9zZWFyY2goY29uc3QgaW50IGFbXSwgaW50IG4sIGludCB4KQp7CglpbnQgcGw9MDsKCWludCBwcj1uLTE7CgkKCWRvCgl7CgkJaW50IHBjPShwbCtwcikvMjsKCQlpZihhW3BjXT09eCkKCQlyZXR1cm4gcGM7CgkJZWxzZSBpZiAoYVtwY108eCkKCQlwbD1wYysxOwoJCWVsc2UKCQlwcj1wYy0xOwoJfXdoaWxlKHBsPD1wcik7CgkKCXJldHVybiAtMTsKfQppbnQgbWFpbih2b2lkKSB7CglpbnQgbix4LGk7CglpbnQgKmE7CglpbnQgYW5zID0gLTE7CglzY2FuZigiJWQgJWQiLCZuLCZ4KTsKCWEgPSAoaW50KiltYWxsb2Moc2l6ZW9mKGludCkqbik7CglpZihhPT1OVUxMKXsKCQlwcmludGYoIkVSUk9SXG4iKTsKCQlyZXR1cm4gLTE7Cgl9Cglmb3IoaT0wO2k8bjtpKyspewoJCXNjYW5mKCIlZCIsJmFbaV0pOwoJfQoJYW5zID0gYmluYXJ5X3NlYXJjaChhLG4seCk7CglpZihhbnMgIT0gLTEpIHByaW50ZigiYVslZF0gPSAlZFxuIixhbnMsYVthbnNdKTsKCWVsc2UgcHJpbnRmKCJub3QgZm91bmRcbiIpOwoJZnJlZShhKTsKCXJldHVybiAwOwp9Cg==