洛谷P1138 第k小整数题解(C++)
程序员文章站
2022-05-14 18:56:57
...
#include <iostream>
#include <cstring>
using namespace std;
bool t[30000];//做个桶排序的数组
int n,k;
int a;
int cnt=0,ans=-1;
int main(){
memset(t,false,sizeof t);//初始化一下桶
cin>>n>>k;
for(int i=0;i<n;i++){
cin>>a;
t[a]=true;//如果遇见了这个数就标记一下
}
for(int i=0;i<30000;i++){
if(t[i]) cnt++;//如果有这么个数就把第cnt大整数标记一下
if(cnt==k){
ans=i;//如果已经找到第k大整数了,记一下答案
break;//退出
}
}
if(ans==-1){
cout<<"NO RESULT"<<endl;//ans最开始是-1,如果是-1的话就证明没有符合得数。
return 0;
}
cout<<ans<<endl;//否则的话输出答案
return 0;
}