#include <stdio.h>
#include <stdlib.h>
int binary_search(int a[], int n, int x){
int left = 0;
int right = n - 1;
int mid;
while(left <= right){
mid = (left + right) / 2;
if(a[mid] == x){
return mid;
}
else if(a[mid] < x){
left = mid + 1;
}
else{
right = mid - 1;
}
}
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
]); else
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCmludCBiaW5hcnlfc2VhcmNoKGludCBhW10sIGludCBuLCBpbnQgeCl7CiAgICBpbnQgbGVmdCA9IDA7CiAgICBpbnQgcmlnaHQgPSBuIC0gMTsKICAgIGludCBtaWQ7CgogICAgd2hpbGUobGVmdCA8PSByaWdodCl7CiAgICAgICAgbWlkID0gKGxlZnQgKyByaWdodCkgLyAyOwoKICAgICAgICBpZihhW21pZF0gPT0geCl7CiAgICAgICAgICAgIHJldHVybiBtaWQ7CiAgICAgICAgfQogICAgICAgIGVsc2UgaWYoYVttaWRdIDwgeCl7CiAgICAgICAgICAgIGxlZnQgPSBtaWQgKyAxOwogICAgICAgIH0KICAgICAgICBlbHNlewogICAgICAgICAgICByaWdodCA9IG1pZCAtIDE7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAtMTsKfQoKaW50IG1haW4odm9pZCkgewogICAgaW50IG4sIHgsIGk7CiAgICBpbnQgKmE7CiAgICBpbnQgYW5zID0gLTE7CgogICAgc2NhbmYoIiVkICVkIiwgJm4sICZ4KTsKCiAgICBhID0gKGludCopbWFsbG9jKHNpemVvZihpbnQpICogbik7CiAgICBpZihhID09IE5VTEwpewogICAgICAgIHByaW50ZigiRVJST1JcbiIpOwogICAgICAgIHJldHVybiAtMTsKICAgIH0KCiAgICBmb3IoaSA9IDA7IGkgPCBuOyBpKyspewogICAgICAgIHNjYW5mKCIlZCIsICZhW2ldKTsKICAgIH0KCiAgICBhbnMgPSBiaW5hcnlfc2VhcmNoKGEsIG4sIHgpOwoKICAgIGlmKGFucyAhPSAtMSkKICAgICAgICBwcmludGYoImFbJWRdID0gJWRcbiIsIGFucywgYVthbnNdKTsKICAgIGVsc2UKICAgICAgICBwcmludGYoIm5vdCBmb3VuZFxuIik7CgogICAgZnJlZShhKTsKICAgIHJldHVybiAwOwp9Cg==