noi 统计前k大的数

描述

给定一个数组,统计前k大的数并且把这k个数从大到小输出。

输入

第一行包含一个整数n,表示数组的大小。n < 100000。
第二行包含n个整数,表示数组的元素,整数之间以一个空格分开。每个整数的绝对值不超过100000000。
第三行包含一个整数k。k < n。

输出

从大到小输出前k大的数,每个数一行。

样例输入

10

4 5 6 9 8 7 1 2 3 0

5

样例输出

9

8

7

6

5

代码

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<algorithm>
 4 #include<cstdlib>
 5 #include<cstring>
 6 #include<string>
 7 #include<cmath>
 8 
 9 using namespace std;
10 
11 int a[100010],n,k;
12 
13 int comp(int a,int b)
14 {
15         return a>b;
16 }
17 
18 int main()
19 {
20         cin>>n;
21         for(int i=1; i<=n; i++)
22         {
23                cin>>a[i];
24         }
25         cin>>k;
26         sort(a+1,a+n+1,comp);
27         for(int i=1; i<=k; i++)
28         {
29                cout<<a[i]<<endl;
30         }cout<<endl;
31         return 0;
32 }

 

posted @ 2017-03-26 21:56  夜雨声不烦  阅读(208)  评论(0编辑  收藏  举报