#include <iostream>
#include <algorithm>
#include <vector>
//#include <cstddef>
int main()
{
std::vector<size_t> m_index_list;
m_index_list.push_back(0);
m_index_list.push_back(5);
m_index_list.push_back(9);
m_index_list.push_back(9);
for (size_t data_pos = 4; data_pos < 12; ++data_pos)
{
// your code goes here
auto it = upper_bound(m_index_list.begin(), m_index_list.end(), data_pos);
//it != end(m_index_list)
size_t fragment_index = it - m_index_list.begin();
std::cout << "data_pos " << data_pos << ": fragment_index = " << fragment_index << std::endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8dmVjdG9yPgovLyNpbmNsdWRlIDxjc3RkZGVmPgoKaW50IG1haW4oKSAKewoJc3RkOjp2ZWN0b3I8c2l6ZV90PiBtX2luZGV4X2xpc3Q7CgkKCW1faW5kZXhfbGlzdC5wdXNoX2JhY2soMCk7CgltX2luZGV4X2xpc3QucHVzaF9iYWNrKDUpOwoJbV9pbmRleF9saXN0LnB1c2hfYmFjayg5KTsKCW1faW5kZXhfbGlzdC5wdXNoX2JhY2soOSk7CgoJZm9yIChzaXplX3QgZGF0YV9wb3MgPSA0OyBkYXRhX3BvcyA8IDEyOyArK2RhdGFfcG9zKQoJewoJCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCQlhdXRvIGl0ID0gdXBwZXJfYm91bmQobV9pbmRleF9saXN0LmJlZ2luKCksIG1faW5kZXhfbGlzdC5lbmQoKSwgZGF0YV9wb3MpOwoKCQkvL2l0ICE9IGVuZChtX2luZGV4X2xpc3QpCgoJCXNpemVfdCBmcmFnbWVudF9pbmRleCA9IGl0IC0gbV9pbmRleF9saXN0LmJlZ2luKCk7CgkKCQlzdGQ6OmNvdXQgPDwgImRhdGFfcG9zICIgPDwgZGF0YV9wb3MgPDwgIjogZnJhZ21lbnRfaW5kZXggPSAiIDw8IGZyYWdtZW50X2luZGV4IDw8IHN0ZDo6ZW5kbDsKCX0KCglyZXR1cm4gMDsKfQ==