#include <iostream>
using namespace std;
int binarySearch(int x[], int l, int r, int key) {
if (r < l) return -1;
else {
int m = (l + r) / 2;
if (x[m] == key)
return m;
else if (x[m] > key)
return binarySearch(x, l, m - 1, key);
else
return binarySearch(x, m + 1, r, key);
}
}
int main(int argc, char const *argv[])
{
int A[9] = {4, 14, 24, 34, 54, 64, 74, 84, 94};
int n = 9, k1 = 64, k2 = 45;
int vt1 = binarySearch(A,0,n,k1);
if (vt1 != -1)
cout<<"Tim thay so "<<k1<<" o vi tri "<<vt1+1<<" trong day"<<endl;
else
cout<<"Khong tim thay so "<<k1<<" trong day"<<endl;
int vt2 = binarySearch(A,0,n,k2);
if (vt2 != -1)
cout<<"Tim thay so "<<k2<<" o vi tri "<<vt2+1<<" trong day"<<endl;
else
cout<<"Khong tim thay so "<<k2<<" trong day"<<endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBiaW5hcnlTZWFyY2goaW50IHhbXSwgaW50IGwsIGludCByLCBpbnQga2V5KSB7CglpZiAociA8IGwpIHJldHVybiAtMTsKCWVsc2UgewoJCWludCBtID0gKGwgKyByKSAvIDI7CgkJaWYgKHhbbV0gPT0ga2V5KSAKCQkJcmV0dXJuIG07CgkJZWxzZSBpZiAoeFttXSA+IGtleSkgCgkJCXJldHVybiBiaW5hcnlTZWFyY2goeCwgbCwgbSAtIDEsIGtleSk7CgkJZWxzZSAKCQkJcmV0dXJuIGJpbmFyeVNlYXJjaCh4LCBtICsgMSwgciwga2V5KTsKCX0KfQoKaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgY29uc3QgKmFyZ3ZbXSkKewoJaW50IEFbOV0gPSB7NCwgMTQsIDI0LCAzNCwgNTQsIDY0LCA3NCwgODQsIDk0fTsKCWludCBuID0gOSwgazEgPSA2NCwgazIgPSA0NTsKCWludCB2dDEgPSBiaW5hcnlTZWFyY2goQSwwLG4sazEpOwoJaWYgKHZ0MSAhPSAtMSkKCQljb3V0PDwiVGltIHRoYXkgc28gIjw8azE8PCIgbyB2aSB0cmkgIjw8dnQxKzE8PCIgdHJvbmcgZGF5Ijw8ZW5kbDsKCWVsc2UKCQljb3V0PDwiS2hvbmcgdGltIHRoYXkgc28gIjw8azE8PCIgdHJvbmcgZGF5Ijw8ZW5kbDsKCWludCB2dDIgPSBiaW5hcnlTZWFyY2goQSwwLG4sazIpOwoJaWYgKHZ0MiAhPSAtMSkKCQljb3V0PDwiVGltIHRoYXkgc28gIjw8azI8PCIgbyB2aSB0cmkgIjw8dnQyKzE8PCIgdHJvbmcgZGF5Ijw8ZW5kbDsKCWVsc2UKCQljb3V0PDwiS2hvbmcgdGltIHRoYXkgc28gIjw8azI8PCIgdHJvbmcgZGF5Ijw8ZW5kbDsKCXJldHVybiAwOwp9Cg==