#include <iostream>
#include <algorithm>
using namespace std;
int getIndex(const std::vector<int>& V, int val)
{
auto iter = std::upper_bound(V.begin(), V.end(), val);
if ( iter != V.begin())
return std::distance(V.begin(), std::prev(iter));
return 0;
}
int main()
{
std::vector<int> V = {5,7,10,12};
std::vector<int> V2 = {7, 8, 10, 11, 13};
std::for_each(V2.begin(), V2.end(), [&](int val)
{std::cout << getIndex(V, val) << " ";});
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBnZXRJbmRleChjb25zdCBzdGQ6OnZlY3RvcjxpbnQ+JiBWLCBpbnQgdmFsKQp7CglhdXRvIGl0ZXIgPSBzdGQ6OnVwcGVyX2JvdW5kKFYuYmVnaW4oKSwgVi5lbmQoKSwgdmFsKTsKCWlmICggaXRlciAhPSBWLmJlZ2luKCkpCgkJcmV0dXJuIHN0ZDo6ZGlzdGFuY2UoVi5iZWdpbigpLCBzdGQ6OnByZXYoaXRlcikpOwoJcmV0dXJuIDA7Cn0KCQoKaW50IG1haW4oKSAKewoJc3RkOjp2ZWN0b3I8aW50PiBWID0gezUsNywxMCwxMn07CglzdGQ6OnZlY3RvcjxpbnQ+IFYyID0gezcsIDgsIDEwLCAxMSwgMTN9OwoJc3RkOjpmb3JfZWFjaChWMi5iZWdpbigpLCBWMi5lbmQoKSwgWyZdKGludCB2YWwpCgkgIHtzdGQ6OmNvdXQgPDwgZ2V0SW5kZXgoViwgdmFsKSA8PCAiICI7fSk7Cn0=