#include <iostream>
#include <vector>
#include <algorithm>
#include <cassert>
int main() {
using namespace std;
int value = 1;
vector<int> values;
for( int cnt = 0; cnt != 10; ++cnt )
values.push_back( value++ );
// values = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }
assert( values.front() == 1 && values.back() == 10 );
// find the position of element 5
vector<int>::reverse_iterator found = find( values.rbegin(), values.rend(), 5 );
// { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }
// ^
assert( *found == 5 );
// { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }
// ^
assert( *found.base() == 6 );
// { 1, 2, 3, 4, 6, 7, 8, 9, 10 }
values.erase( ++found.base() );
assert( values[ 5 ] == 6 );
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8YWxnb3JpdGhtPgogCiNpbmNsdWRlIDxjYXNzZXJ0PgogCmludCBtYWluKCkgewogICAgCiAgICB1c2luZyBuYW1lc3BhY2Ugc3RkOwogICAgCiAgICBpbnQgdmFsdWUgPSAxOwogICAgdmVjdG9yPGludD4gdmFsdWVzOwogICAgZm9yKCBpbnQgY250ID0gMDsgY250ICE9IDEwOyArK2NudCApCiAgICAgICAgdmFsdWVzLnB1c2hfYmFjayggdmFsdWUrKyApOwogICAgCiAgICAvLyB2YWx1ZXMgPSB7IDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwIH0KICAgIGFzc2VydCggdmFsdWVzLmZyb250KCkgPT0gMSAmJiB2YWx1ZXMuYmFjaygpID09IDEwICk7CiAgICAKICAgIC8vIGZpbmQgdGhlIHBvc2l0aW9uIG9mIGVsZW1lbnQgNQogICAgdmVjdG9yPGludD46OnJldmVyc2VfaXRlcmF0b3IgZm91bmQgPSBmaW5kKCB2YWx1ZXMucmJlZ2luKCksIHZhbHVlcy5yZW5kKCksIDUgKTsKICAgIC8vIHsgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAgfQogICAgLy8gICAgICAgICAgICAgICBeCiAgICBhc3NlcnQoICpmb3VuZCA9PSA1ICk7CiAgICAvLyB7IDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwIH0KICAgIC8vICAgICAgICAgICAgICAgICAgXgogICAgYXNzZXJ0KCAqZm91bmQuYmFzZSgpID09IDYgKTsKICAgIC8vIHsgMSwgMiwgMywgNCwgNiwgNywgOCwgOSwgMTAgfQogICAgdmFsdWVzLmVyYXNlKCArK2ZvdW5kLmJhc2UoKSApOwogICAgYXNzZXJ0KCB2YWx1ZXNbIDUgXSA9PSA2ICk7Cn0=