//第3回 課題1
#include <stdio.h>
#include <stdlib.h>
//この関数を実装する
int binary_search(int a[],int n,int x){
//この関数の内側だけを書く
int lef = 0;
int rig = n - 1;
while(lef <= rig){
int mid = (lef + rig) / 2;
if(a[mid] == x){
return mid; // 見つかったらそのインデックスを返す
} else if(a[mid] < x){
lef = mid + 1;
} else if(a[mid]>x) {
rig = mid - 1;
}
}
return -1; // 見つからなかったら -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+8kQojaW5jbHVkZSA8c3RkaW8uaD4KI2luY2x1ZGUgPHN0ZGxpYi5oPgoKLy/jgZPjga7plqLmlbDjgpLlrp/oo4XjgZnjgosKaW50IGJpbmFyeV9zZWFyY2goaW50IGFbXSxpbnQgbixpbnQgeCl7CgkvL+OBk+OBrumWouaVsOOBruWGheWBtOOBoOOBkeOCkuabuOOBjwoJaW50IGxlZiA9IDA7CiAgICBpbnQgcmlnID0gbiAtIDE7CiAgICB3aGlsZShsZWYgPD0gcmlnKXsKICAgICAgICBpbnQgbWlkID0gKGxlZiArIHJpZykgLyAyOwogICAgICAgIGlmKGFbbWlkXSA9PSB4KXsKICAgICAgICAgICAgcmV0dXJuIG1pZDsgLy8g6KaL44Gk44GL44Gj44Gf44KJ44Gd44Gu44Kk44Oz44OH44OD44Kv44K544KS6L+U44GZCiAgICAgICAgfSBlbHNlIGlmKGFbbWlkXSA8IHgpewogICAgICAgICAgICBsZWYgPSBtaWQgKyAxOwogICAgICAgIH0gZWxzZSBpZihhW21pZF0+eCkgewogICAgICAgICAgICByaWcgPSBtaWQgLSAxOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiAtMTsgLy8g6KaL44Gk44GL44KJ44Gq44GL44Gj44Gf44KJIC0xIOOCkui/lOOBmQp9CgppbnQgbWFpbih2b2lkKSB7CglpbnQgbix4LGk7CglpbnQgKmE7CglpbnQgYW5zID0gLTE7CglzY2FuZigiJWQgJWQiLCZuLCZ4KTsKCWEgPSAoaW50KiltYWxsb2Moc2l6ZW9mKGludCkqbik7CglpZihhPT1OVUxMKXsKCQlwcmludGYoIkVSUk9SXG4iKTsKCQlyZXR1cm4gLTE7Cgl9Cglmb3IoaT0wO2k8bjtpKyspewoJCXNjYW5mKCIlZCIsJmFbaV0pOwoJfQoJYW5zID0gYmluYXJ5X3NlYXJjaChhLG4seCk7CglpZihhbnMgIT0gLTEpIHByaW50ZigiYVslZF0gPSAlZFxuIixhbnMsYVthbnNdKTsKCWVsc2UgcHJpbnRmKCJub3QgZm91bmRcbiIpOwoJZnJlZShhKTsKCXJldHVybiAwOwp9Cgo=