Problem Description
给你n个整数,请按从大到小的顺序输出其中前m大的数。
Input
每组测试数据有两行,第一行有两个数n,m(0<n,m< 1000000),第二行包含n个各不相同,
且都处于区间[-500000,500000]的整数。
Output
对每组测试数据按从大到小的顺序输出前m大的数。
#include <bits/stdc++.h>
using namespace std;
const int maxn = 10000001;
int a[maxn];
int main()
{
int n, m;
cin >> n >> m;
memset(a, 0, sizeof(a));
int t;
for (int i = 0; i < n; ++i) {
cin >> t;
a[t+500000]++;
}
for (int i = 1000000; i >= 1; --i) {
while(a[i] && m)
{
cout << i-500000 << " ";
a[i]--;
m--;
}
}
return 0;
}