描述
给定一个数组,统计前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 }