#include <bits/stdc++.h>
using namespace std;
int main() {
vector<int>a= {2, 3, 7, 10, 11, 11, 25};
// auto it= lower_bound(v.begin(),v.end(),11);
// int idx = it-v.begin();
// implementing lower_bound:
int l=0, h=a.size()-1;
int k=9;
int ans = a.size();
while(l<h){
int m=(l+h)/2;
if(a[m]<k)
l=m+1;
else{
if(a[m]==k)
ans=m;
h=m;
}
}
cout<<" idx is "<<ans<<endl;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKCXZlY3RvcjxpbnQ+YT0gezIsIDMsIDcsIDEwLCAxMSwgMTEsIDI1fTsKCS8vIGF1dG8gaXQ9IGxvd2VyX2JvdW5kKHYuYmVnaW4oKSx2LmVuZCgpLDExKTsKCS8vIGludCBpZHggPSBpdC12LmJlZ2luKCk7CgkvLyBpbXBsZW1lbnRpbmcgbG93ZXJfYm91bmQ6CglpbnQgbD0wLCBoPWEuc2l6ZSgpLTE7CglpbnQgaz05OwoJaW50IGFucyA9IGEuc2l6ZSgpOwoJd2hpbGUobDxoKXsKCQlpbnQgbT0obCtoKS8yOwoJCWlmKGFbbV08aykKCQlsPW0rMTsKCQllbHNlewoJCQlpZihhW21dPT1rKQoJCQlhbnM9bTsKCQkJaD1tOwoJCX0KCX0KCWNvdXQ8PCIgaWR4IGlzICI8PGFuczw8ZW5kbDsKfQ==