题目描述:
现有 n个正整数,要求出这 n 个正整数中的第 k 小的整数(相同大小的整数只计算一次)。
输入描述:
第一行两个整数 n,k。
第二行 n 个用空格分隔的整数 ai。
数据范围:1≤k≤n≤104,1≤ai≤104。
输出描述:
共 n 行,每行按要求输出。
输出时每行末尾的多余空格,不影响答案正确性
输入:
8 3
3 2 8 7 3 10 2 5
输出:
5
题意:
字面意思
题解:
set搞一搞
代码:
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
#include<set>
using namespace std;
int main(){
int n,m,x;
set<int>s;
while(scanf("%d%d",&n,&m)!=EOF){
s.clear();
for(int i = 1; i <= n; i ++){
scanf("%d",&x);
s.insert(x);
}
set<int>::iterator it;
int t = 1;
bool flag = false;
for(it = s.begin ();it != s.end ();it++){
if(t == m){
printf("%d\n",*it);
flag = true;
break;
}
t ++;
}
if(!flag) printf("NO RESULT\n");
}
return 0;
}