班级正在选举班长,有n(n≤999)名候选人,每名候选人编号分别从 1 到 �n,现在收集到了m(m≤2000000)张选票,每张选票都写了一个候选人编号。现在想把这些堆积如山的选票按照投票数字从小到大排序并写出选举票数最多的序号。
输入格式
第一行为�n �m
第二行为�m张票 中间用空格隔开
输出格式
第一行为排好序的投票结果(中间用空格隔开)
第二行为选中的序号
样例
输入
5 10
2 5 2 2 5 2 2 2 1 2
输出
1 2 2 2 2 2 2 2 5 5
2
数据范围
1≤n≤999
1≤m≤2000000
#include <algorithm>
#include <cstdio>
#include <cstring>
#include <iostream>
using namespace std;
const int N = 2e5 + 10;
int n, m, k = 0;
int a[N];
int main()
{
cin >> n >> m;
for (int i = 0; i < m; i++)
{
cin >> k;
a[k]++;
}
int max = a[0];
int c = 0;
for (int i = 1; i <= n; i++)
if (max < a[i])
{
max = a[i];
c = i;
}
for (int i = 1; i <= n; i++)
for (int j = 0; j < a[i]; j++)
cout << i << " ";
cout << endl;
cout << c;
return 0;
}
标签:10,int,999,选票,班长,include,1001,候选人
From: https://blog.csdn.net/wang4518/article/details/140750706