#include <iostream>
#include <stdio.h>
#include <set>
#include <algorithm>
using namespace std;
//读入优化函数
int get_val()
{
int ret=0;
char c;
while((c=getchar())!=' '&&c!='\n')
ret=ret*10+c-'0';
return ret;
}
int main( )
{
int a, n, k, size;
multiset<int> mySet;
multiset<int>::iterator iter;
scanf("%d %d",&n,&k);
size = 0; //保持set里面只有K个数,提高效率
do
{
a=get_val();
if(size++ < k)
{
mySet.insert(a);
}
else
{
iter = mySet.begin();
if(a > *iter)
{
mySet.erase(iter);
mySet.insert(a);
}
}
}
while(--n );
iter = mySet.begin();
printf("%d\n",*iter);
return 0;
}
求一串数字中第K大的数(STL+读入优化)
最新推荐文章于 2022-02-27 10:42:13 发布