题目:
题目描述
由文件给出 N 个 1 到 30000 间无序数正整数,其中 1≤N≤10000,同一个正整数可能会出现多次,出现次数最多的整数称为众数。求出它的众数及它出现的次数。
输入输出格式
输入格式:
输入文件第一行是正整数的个数N,第二行开始为N 个正整数(每两个数之间有两个空格)。
输出格式:
输出文件有若干行,每行两个数,第1个是众数,第2个是众数出现的次数(中间空两格)。
输入输出样例
输入样例#1:
12
2 4 2 3 2 5 3 7 2 3 4 3
输出样例#1:
2 4
3 4
思路:
数据量小,直接计数排序,不会爆空间。
代码:
#include<bits/stdc++.h>
using namespace std;
#define maxm 30000
int a[maxm+5]={0};
void readin(){
int n;
scanf("%d",&n);
for(int i=1;i<=n;i++) {
int x;
scanf("%d",&x);
a[x]++;
}
}
int find(){
int s=0;
for(int i=1;i<=maxm;i++){
s=max(s,a[i]);
}
return s;
}
void print(int s){
for(int i=1;i<=maxm;i++){
if(s==a[i]) printf("%d %d\n",i,s);
}
}
int main(){
readin();
int s=find();
print(s);
return 0;
}