#include <algorithm>
#include <iostream>
#include <vector>
int main() {
const std::vector<int> v {4, 8, 15, 15, 16, 23, 42};
for (int i : {0, 4, 14, 15, 16, 42, 50 }) {
auto it = std::lower_bound(v.begin(), v.end(), i, std::less<>{});
std::cout << i << " (l):" << std::distance(v.begin(), it) << " " ;
auto uit = std::upper_bound(v.rbegin(), v.rend(), i, std::greater<>{}).base();
std::cout << "(u):" << std::distance(v.begin(), uit) << std::endl;
}
}
I2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgoKaW50IG1haW4oKSB7CiAgICBjb25zdCBzdGQ6OnZlY3RvcjxpbnQ+IHYgezQsIDgsIDE1LCAxNSwgMTYsIDIzLCA0Mn07CgogICAgZm9yIChpbnQgaSA6IHswLCA0LCAxNCwgMTUsIDE2LCA0MiwgNTAgfSkgewogICAgICAgIGF1dG8gaXQgPSBzdGQ6Omxvd2VyX2JvdW5kKHYuYmVnaW4oKSwgdi5lbmQoKSwgaSwgc3RkOjpsZXNzPD57fSk7CiAgICAgICAgc3RkOjpjb3V0IDw8IGkgPDwgIiAobCk6IiA8PCBzdGQ6OmRpc3RhbmNlKHYuYmVnaW4oKSwgaXQpIDw8ICIgIiA7CiAgICAgICAgYXV0byB1aXQgPSBzdGQ6OnVwcGVyX2JvdW5kKHYucmJlZ2luKCksIHYucmVuZCgpLCBpLCBzdGQ6OmdyZWF0ZXI8Pnt9KS5iYXNlKCk7CiAgICAgICAgc3RkOjpjb3V0IDw8ICIodSk6IiA8PCBzdGQ6OmRpc3RhbmNlKHYuYmVnaW4oKSwgdWl0KSA8PCBzdGQ6OmVuZGw7CiAgICB9Cn0=