题目来源:中山纪念中学
题目描述:
小h和小R正在看之前的期末&三校联考成绩,小R看完成绩之后很伤心,共有n(n<=5*1000000)个学生,第i个学生有一个总成绩Xi(0<=Xi<=10^5),因为他的排名是倒数第k(1<=k<=n)个,于是小R想知道那些成绩比他低(包括成绩和他一样)的同学的成绩,这样能让他没那么伤心。
输入:
第一行,n和k,表示有n个学生,小R排倒数第k.
第二行,n个非负整数,表示这n个学生的成绩。
输出:
一行,共k个数,从小到大输出。(相同成绩按不同排名算)
输入样例:
5 3
1 1 2 2 3
输出样例:
1 1 2
思路:
看输出,一共k个数,那么直接把分数从小到大排个序,然后输出前k个就行了,不要想太多,不要想太多…
AC 代码:
(这么短的代码都不好意思贴出来哈哈哈)
#include<bits/stdc++.h>
using namespace std;
int n,k,a[5000010];
int main()
{
scanf("%d%d",&n,&k);
for (int i=1;i<=n;i++) scanf("%d",&a[i]);
sort(a+1,a+1+n);
for (int i=1;i<=k;i++) printf("%d ",a[i]);
return 0;
}