#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
using namespace std;
int main() {
vector<int> data = {1, 5, 2, 20, 10, 7, 9, 1000};
vector<const int*> ptr(data.size());
transform(data.begin(), data.end(), ptr.begin(), [](const int& d) {return &d;});
auto mid = next(ptr.begin(), data.size() / 2);
nth_element(ptr.begin(), mid, ptr.end(), [](const int* lhs, const int* rhs) {return *lhs < *rhs;});
ptrdiff_t pos = *mid - &data[0];
cout << pos << endl << data[pos] << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8aXRlcmF0b3I+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKSB7Cgl2ZWN0b3I8aW50PiBkYXRhID0gezEsIDUsIDIsIDIwLCAxMCwgNywgOSwgMTAwMH07CiAgICB2ZWN0b3I8Y29uc3QgaW50Kj4gcHRyKGRhdGEuc2l6ZSgpKTsKICAgIHRyYW5zZm9ybShkYXRhLmJlZ2luKCksIGRhdGEuZW5kKCksIHB0ci5iZWdpbigpLCBbXShjb25zdCBpbnQmIGQpIHtyZXR1cm4gJmQ7fSk7CiAgICBhdXRvIG1pZCA9IG5leHQocHRyLmJlZ2luKCksIGRhdGEuc2l6ZSgpIC8gMik7CiAgICBudGhfZWxlbWVudChwdHIuYmVnaW4oKSwgbWlkLCBwdHIuZW5kKCksIFtdKGNvbnN0IGludCogbGhzLCBjb25zdCBpbnQqIHJocykge3JldHVybiAqbGhzIDwgKnJoczt9KTsKICAgIHB0cmRpZmZfdCBwb3MgPSAqbWlkIC0gJmRhdGFbMF07CiAgICBjb3V0IDw8IHBvcyA8PCBlbmRsIDw8IGRhdGFbcG9zXSA8PCBlbmRsOwoJcmV0dXJuIDA7Cn0=