#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
]); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KIAovL+OBk+OBrumWouaVsOOCkuWun+ijheOBmeOCiwppbnQgYmluYXJ5X3NlYXJjaChpbnQgYVtdLGludCBuLGludCB4KXsKCS8v44GT44Gu6Zai5pWw44Gu5YaF5YG044Gg44GR44KS5pu444GPCiAgaW50IGxlZnQgPSAwOwogICAgaW50IHJpZ2h0ID0gbiAtIDE7CgogICAgaW50IG1pZDsKCiAgICB3aGlsZShsZWZ0IDw9IHJpZ2h0KXsKICAgICAgICBtaWQgPSAobGVmdCArIHJpZ2h0KSAvIDI7CgoKICAgICAgICBpZihhW21pZF0gPT0geCl7CiAgICAgICAgICAgIHJldHVybiBtaWQ7CiAgICAgICAgIH1lbHNlIGlmKGFbbWlkXSA8IHgpICB7CiAgICAgICAgICAgIGxlZnQgPSBtaWQgKyAxOwogICAgIH1lbHNlewogICAgICAgICAgICByaWdodCA9IG1pZCAtIDE7IAogICAgICB9CiAgfQogICAgcmV0dXJuIC0xOwp9CiAKaW50IG1haW4odm9pZCkgewoJaW50IG4seCxpOwoJaW50ICphOwoJaW50IGFucyA9IC0xOwoJc2NhbmYoIiVkICVkIiwmbiwmeCk7CglhID0gKGludCopbWFsbG9jKHNpemVvZihpbnQpKm4pOwoJaWYoYT09TlVMTCl7CgkJcHJpbnRmKCJFUlJPUlxuIik7CgkJcmV0dXJuIC0xOwoJfQoJZm9yKGk9MDtpPG47aSsrKXsKCQlzY2FuZigiJWQiLCZhW2ldKTsKCX0KCWFucyA9IGJpbmFyeV9zZWFyY2goYSxuLHgpOwoJaWYoYW5zICE9IC0xKSBwcmludGYoImFbJWRdID0gJWRcbiIsYW5zLGFbYW5zXSk7CgllbHNlIHByaW50Zigibm90IGZvdW5kXG4iKTsKCWZyZWUoYSk7CglyZXR1cm4gMDsKfQ==