在不需要完全有序的场景下使用堆

#include <functional>
#include <iostream>
#include "queue"
using namespace std;

int main() {
    int n;
    while (cin >> n) { // 注意 while 处理多个 case
        priority_queue<int, vector<int>, greater<int>> myQueue;
        while (n--) {
            int temp;
            cin >> temp;
            myQueue.push(temp);
        }
        int k;
        cin >> k;
        int temp = myQueue.top();
        myQueue.pop();
        while (k > 1) {
            if (temp != myQueue.top()) {
                k--;
            }
            temp = myQueue.top();
            myQueue.pop();
        }
        cout<<temp<<endl;
    }
}
// 64 位输出请用 printf("%lld")