总时间限制: 10000ms 单个测试点时间限制: 1000ms 内存限制: 65536kB
描述
给定一个数组,统计前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
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<ctime>
#include<iostream>
#include<algorithm>
#include<map>
#include<stack>
#include<queue>
#include<vector>
#include<set>
#include<string>
#define dd double
#define ll long long
dd PI = acos(-1);
using namespace std;
const ll MAXN = 100005;
const ll INF = 1e9 + 5;
ll n, m;
ll arr[MAXN];
int main() {
ios::sync_with_stdio(false);
cin >> n;
for (ll i = 0; i < n; i++) {
cin >> arr[i];
}
cin >> m;
sort(arr, arr + n);
for (ll i = n - 1; i >= n - m; i--) {
cout << arr[i] << endl;
}
}