【深基9.例1】选举学生会
题目描述
学校正在选举学生会成员,有 $n(n\le 999)$ 名候选人,每名候选人编号分别从 1 到 $n$,现在收集到了 $m(m<=2000000)$ 张选票,每张选票都写了一个候选人编号。现在想把这些堆积如山的选票按照投票数字从小到大排序。
输入格式
输入 $n$ 和 $m$ 以及 $m$ 个选票上的数字。
输出格式
求出排序后的选票编号。
样例 #1
样例输入 #1
5 10
2 5 2 2 5 2 2 2 1 2
样例输出 #1
1 2 2 2 2 2 2 2 5 5
思路
计数排序,用数组储存票数。
ac代码
#include <iostream>
#include <cstring>
#define author "hex9cf"
using namespace std;
const int maxn = 100005;
int main() {
int n, m;
int vote[maxn];
memset(vote, 0, sizeof(vote));
cin >> n >> m;
for(int i = 0; i < m; i++){
int v;
cin >> v;
vote[v]++;
}
for(int i = 1; i <= n; i++){
for(int j = 1; j <= vote[i]; j++){
cout << i << " ";
}
}
return 0;
}