#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
int n, num[100005];
vector<int> tree;
static int found(int target) {
int l = 0, r = tree.size() - 1;
while (l <= r) {
int mid = l + (r - l) / 2;
if (tree[mid] >= target) r = mid - 1;
else l = mid + 1;
}
return l;
}
int main()
{
cin >> n;
for (int i = 1,x = 0; i <= n; i++) {
cin >> x;
if (i == 1) tree.push_back(x);
else {
tree.insert(tree.begin() + found(x), x);
}
if (i % 2 == 1) cout << tree[(static_cast<std::vector<int, std::allocator<int>>::size_type>(i) - 1) / 2] << endl;
}
return 0;
}
vector方法