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