// Example program
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int binSearch(const vector<int> &v, int n) {
if(v.empty()) return -1;
int l = 0;
int r = v.size()-1;
while(l <= r) {
int mid = l+(r-l)/2;
if(v[mid] == n) return mid;
else
if(n < v[mid]) r = mid-1;
else l = mid+1;
}
return -1;
}
int binSearch2(const vector<int> &v, int n) {
if(v.empty()) return -1;
int l = 0;
int r = v.size()-1;
while(l < r) {
int mid = l+(r-l)/2;
if(v[mid] == n) return mid;
else
if(n < v[mid]) r = mid;
else l = mid+1;
}
return -1;
}
int main()
{
for(int i = 0; i <= 5; i++)
cout << binSearch({0,1,2,3,4,5}, i) << " " << binSearch2({0,1,2,3,4,5}, i) << endl;
return 0;
}
Ly8gRXhhbXBsZSBwcm9ncmFtCiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPHZlY3Rvcj4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsgCgppbnQgYmluU2VhcmNoKGNvbnN0IHZlY3RvcjxpbnQ+ICZ2LCBpbnQgbikgewoJaWYodi5lbXB0eSgpKSByZXR1cm4gLTE7CgoJaW50IGwgPSAwOwoJaW50IHIgPSB2LnNpemUoKS0xOwoKCXdoaWxlKGwgPD0gcikgewoJCWludCBtaWQgPSBsKyhyLWwpLzI7CgkJaWYodlttaWRdID09IG4pIHJldHVybiBtaWQ7CgkJZWxzZQoJCWlmKG4gPCB2W21pZF0pIHIgPSBtaWQtMTsKCQllbHNlIGwgPSBtaWQrMTsKCX0KCglyZXR1cm4gLTE7Cn0KCmludCBiaW5TZWFyY2gyKGNvbnN0IHZlY3RvcjxpbnQ+ICZ2LCBpbnQgbikgewoJaWYodi5lbXB0eSgpKSByZXR1cm4gLTE7CgoJaW50IGwgPSAwOwoJaW50IHIgPSB2LnNpemUoKS0xOwoKCXdoaWxlKGwgPCByKSB7CgkJaW50IG1pZCA9IGwrKHItbCkvMjsKCQlpZih2W21pZF0gPT0gbikgcmV0dXJuIG1pZDsKCQllbHNlCgkJaWYobiA8IHZbbWlkXSkgciA9IG1pZDsKCQllbHNlIGwgPSBtaWQrMTsKCX0KCglyZXR1cm4gLTE7Cn0KCmludCBtYWluKCkKewogICAgZm9yKGludCBpID0gMDsgaSA8PSA1OyBpKyspCiAgICAgICAgY291dCA8PCBiaW5TZWFyY2goezAsMSwyLDMsNCw1fSwgaSkgPDwgIiAiIDw8IGJpblNlYXJjaDIoezAsMSwyLDMsNCw1fSwgaSkgPDwgZW5kbDsgCiAgICAgICAgCiAgICByZXR1cm4gMDsKfQo=