题目描述
有n个正整数,n≤10000,要求出这n个正整数中的第k个最小整数(相同大小的整数只计算一次),k≤1000,正整数均小于30000。
输入格式
第一行为n和k; 第二行开始为n个正整数的值,整数间用空格隔开。
输出格式
第k个最小整数的值;若无解,则输出“NO RESULT”
代码:
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
int n,k,ans=1,maxsize=0;
int a[10010], b[30010]={0};
cin>>n>>k;
for(int i=1;i<=n;i++)
{
cin>>a[i];
b[a[i]]++;
maxsize=max(maxsize,a[i]);
}
for(int i=1;i<=maxsize;i++)
if(b[i])
{
if(ans==k)
{
cout<<i<<endl;
return 0;
}
else ans++;
}
cout<<"NO RESULT"<<endl;
return 0;
}