【深基9.例1】选举学生会
题目描述
学校正在选举学生会成员,有 n n n( n ≤ 999 n\le 999 n≤999)名候选人,每名候选人编号分别从 1 1 1 到 n n n,现在收集到了 m m m( m ≤ 2000000 m \le 2000000 m≤2000000)张选票,每张选票都写了一个候选人编号。现在想把这些堆积如山的选票按照投票数字从小到大排序。
输入格式
输入 n n n 和 m m m 以及 m 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
桶的思想,不需要排序,每次输入一个选票则对应的a[]加一,最后依次从小到大输出a[]个选票
#include <bits/stdc++.h>
using namespace std;
int a[1005];
int main()
{
int n,m,t;
cin>>n>>m;
for(int i=0;i<m;i++)
{
cin>>t;
a[t]++;
}
for(int i=0;i<1005;i++)
{
for(int j=a[i];j>0;j--)
{
cout<<i<<" ";
}
}
return 0;
}