题目描述
现有n个正整数,n≤10000,要求出这n个正整数中的第k个最小整数(相同大小的整数只计算一次),k≤1000,正整数均小于30000。
输入
第一行为n和k; 第二行开始为n个正整数的值,整数间用空格隔开。
输出
第k个最小整数的值;若无解,则输出“NO RESULT”。
样例输入
10 3
1 3 3 7 2 5 1 2 4 6
样例输出
3
数据规模与约定
时间限制:1 s
内存限制:256 M
100% 的数据保证 1≤n≤10000,1≤k≤1000,正整数均小于30000
#include <iostream>
using namespace std;
int main() {
int n,k;
cin >> n >> k;
int num[30005] = { 0 };
for (int i = 1; i <= n; i++) {
int t;
cin >> t;
num[t]++;
}
int cnt = 0;
for (int i = 1; i <= 30000; i++) {
if (num[i]) k--;
if (k == 0) {
cout << i << endl;
break;
}
}
return 0;
}