#include <iostream> #include <cstdio> #include <queue> using namespace std; /** * 查找第K小的数--北京邮电大学 * @return */ int main() { int n; while (cin >> n) { priority_queue<int, vector<int>, greater<int>> priorityQueue; for (int i = 0; i < n; ++i) { int num; cin >> num; priorityQueue.push(num); } int k; cin >> k; if (k == 1) { /* * 第1个,则直接弹出即可 */ cout << priorityQueue.top() << endl; } else { /* * 先取出第1个,再弹出k-1个 */ int pre = priorityQueue.top(); for (int j = 1; j < k; ++j) { priorityQueue.pop(); int cur = priorityQueue.top(); if (pre == cur) { /* * 前后两个数相等,则不计数,j-- */ j--; } pre = cur; } cout << priorityQueue.top() << endl; } } return 0; }