//第3回提出課題
#include <stdio.h>
#include <stdlib.h>
//この関数を実装する
int binary_search(int a[],int n,int x){
//この関数の内側だけを書く
int mid, lef, rig;
lef = 0;
rig = n - 1;
while (1) {
mid = (lef + rig) / 2;
if (a[mid] == x) {
return mid;
} else if (x < a[mid]) {
rig = mid - 1;
if (a[rig] == x) {
return rig;
}
} else {
lef = mid + 1;
if (a[lef] == x) {
return lef;
}
}
if (lef >= rig) {
return -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;
}
Ly/nrKzvvJPlm57mj5Dlh7roqrLpoYwKI2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KIAovL+OBk+OBrumWouaVsOOCkuWun+ijheOBmeOCiwppbnQgYmluYXJ5X3NlYXJjaChpbnQgYVtdLGludCBuLGludCB4KXsKLy/jgZPjga7plqLmlbDjga7lhoXlgbTjgaDjgZHjgpLmm7jjgY8KaW50IG1pZCwgbGVmLCByaWc7CmxlZiA9IDA7CnJpZyA9IG4gLSAxOwp3aGlsZSAoMSkgewptaWQgPSAobGVmICsgcmlnKSAvIDI7CiAgaWYgKGFbbWlkXSA9PSB4KSB7CiAgICByZXR1cm4gbWlkOwogIH0gZWxzZSBpZiAoeCA8IGFbbWlkXSkgewogICAgICByaWcgPSBtaWQgLSAxOwogICAgICBpZiAoYVtyaWddID09IHgpIHsKICAgICAgICByZXR1cm4gcmlnOwogICAgICB9CiAgICB9IGVsc2UgewogICAgICAgIGxlZiA9IG1pZCArIDE7CiAgICAgICAgaWYgKGFbbGVmXSA9PSB4KSB7CiAgICAgICAgICByZXR1cm4gbGVmOwogICAgICAgIH0KICAgICAgfQogIGlmIChsZWYgPj0gcmlnKSB7CiAgICByZXR1cm4gLTE7CiAgfQp9CnJldHVybiAtMTsKfQogCmludCBtYWluKHZvaWQpIHsKCWludCBuLHgsaTsKCWludCAqYTsKCWludCBhbnMgPSAtMTsKCXNjYW5mKCIlZCAlZCIsJm4sJngpOwoJYSA9IChpbnQqKW1hbGxvYyhzaXplb2YoaW50KSpuKTsKCWlmKGE9PU5VTEwpewoJCXByaW50ZigiRVJST1JcbiIpOwoJCXJldHVybiAtMTsKCX0KCWZvcihpPTA7aTxuO2krKyl7CgkJc2NhbmYoIiVkIiwmYVtpXSk7Cgl9CglhbnMgPSBiaW5hcnlfc2VhcmNoKGEsbix4KTsKCWlmKGFucyAhPSAtMSkgcHJpbnRmKCJhWyVkXSA9ICVkXG4iLGFucyxhW2Fuc10pOwoJZWxzZSBwcmludGYoIm5vdCBmb3VuZFxuIik7CglmcmVlKGEpOwoJcmV0dXJuIDA7Cn0=