众数(masses)(c++)

题目描述

由文件给出N个1到30000间无序数正整数,其中1≤N≤10000,同一个正整数可能会出现多次,出现次数最多的整数称为众数。求出它的众数及它出现的次数。

输入描述

输入文件第一行是正整数的个数N,第二行开始为N个正整数。

输出描述

输出文件有若干行,每行两个数,第1个是众数,第2个是众数出现的次数。(两个数之间由一个空格间隔,行末无多余空格)

样例

输入 

12
2 4 2 3 2 5 3 7 2 3 4 3

输出 

2 4
3 4
来源

算法一本通初赛篇 算法部分

答案

#include
using namespace std;

int main(){
	int cnt[30001] = {0};
	int n;
	cin >> n;
	int a[n];
	int mx = 0;
	for(int i = 0; i < n; i++){
		cin >> a[i];
		cnt[a[i]]++;
		if(cnt[a[i]] > mx)
			mx = cnt[a[i]];
	}
	for(int i = 0; i <= 30000; i++){
		if(cnt[i] == mx){
			cout << i << ' ' << cnt[i] << '\n';
		}
	}
}

你可能感兴趣的:(c++,算法,数据结构)