//第3回 課題1
#include <stdio.h>
#include <stdlib.h>
int binary_search(int a[],int n,int x){
int left = 0;
int right = n - 1;
while(left <= right){
int mid = (left + right) / 2;
//printf("%d %d %d :%d\n",lef,mid,rig,a[mid]);
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;
}
Ly/nrKwz5ZueIOiqsumhjO+8kQojaW5jbHVkZSA8c3RkaW8uaD4KI2luY2x1ZGUgPHN0ZGxpYi5oPgogCmludCBiaW5hcnlfc2VhcmNoKGludCBhW10saW50IG4saW50IHgpewppbnQgbGVmdCAgPSAwOwppbnQgcmlnaHQgPSBuIC0gMTsKCQoJd2hpbGUobGVmdCA8PSByaWdodCl7CgkJaW50IG1pZCA9IChsZWZ0ICsgcmlnaHQpIC8gMjsKCQkvL3ByaW50ZigiJWQgJWQgJWQgOiVkXG4iLGxlZixtaWQscmlnLGFbbWlkXSk7CgoJCWlmKGFbbWlkXSA9PSB4KXsKCQkJcmV0dXJuIG1pZDsKCQl9CgkJZWxzZSBpZihhW21pZF0gPCB4KXsKCQkJbGVmdCA9IG1pZCArIDE7CgkJfQoJCWVsc2V7CgkJCXJpZ2h0ID0gbWlkIC0gMTsKCQl9Cgl9CgkKCXJldHVybiAtMTsKfQogCmludCBtYWluKHZvaWQpIHsKCWludCBuLHgsaTsKCWludCAqYTsKCWludCBhbnMgPSAtMTsKCXNjYW5mKCIlZCAlZCIsJm4sJngpOwoJYSA9IChpbnQqKW1hbGxvYyhzaXplb2YoaW50KSpuKTsKCWlmKGE9PU5VTEwpewoJCXByaW50ZigiRVJST1JcbiIpOwoJCXJldHVybiAtMTsKCX0KCWZvcihpPTA7aTxuO2krKyl7CgkJc2NhbmYoIiVkIiwmYVtpXSk7Cgl9CglhbnMgPSBiaW5hcnlfc2VhcmNoKGEsbix4KTsKCWlmKGFucyAhPSAtMSkgcHJpbnRmKCJhWyVkXSA9ICVkXG4iLGFucyxhW2Fuc10pOwoJZWxzZSBwcmludGYoIm5vdCBmb3VuZFxuIik7CglmcmVlKGEpOwoJcmV0dXJuIDA7Cn0=