#include <iostream>
#include <algorithm>
#include <queue>
using namespace std;
int main()
{
int n,m;
cin>>n>>m;
int a[100001];
priority_queue<int,vector<int>,greater<int> > pq;
for(int i=0;i<n;i++)
{
cin>>a[i];
if (i<m)
pq.push(a[i]);
}
for(int i=m;i<n;i++)
{
pq.pop();
pq.push(a[i]);
}
cout<<pq.top();
}
解法二
#include <iostream>
#include <algorithm>
#include <queue>
typedef long long ll;
using namespace std;
int main() //主函数
{
int n,m;
cin>>n>>m;
int a[100001];
priority_queue<int,vector <int>,greater <int> > pq;
for(int i=0;i<n;i++)
{
cin>>a[i];
if (i<m)
pq.push(a[i]);
}
sort(a+m,a+n);
for(int i=m;i<n;i++)
{
pq.pop();
pq.push(a[i]);
}
cout<<pq.top();
}