2229 - 众数问题

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 128 MB

问题描述:

给定含有n个元素的多重集合S,每个元素在S中出现的次数称为该元素的重数。多重集S中重数最大的元素称为众数。
例如,S={1,2,2,2,3,5}。多重集S的众数是2,其重数为3。
编程任务:
对于给定的由n 个自然数组成的多重集S,编程计算S 的众数及其重数。

题目输入

第1行多重集S中元素个数n(n<=50000);接下来的n 行中,每行有一个自然数。

题目输出

输出文件有2 行,第1 行给出众数,第2 行是重数。(如果有多个众数,只输出最小的)

输入/输出样例

输入格式

6
1
2
2
2
3
5

输出格式

2
3

C++解答

#include<cstdio>
#include<iostream>
#include<cmath>
using namespace std;
long long a[40000];
int main ()
{
	long long n,i,j,m,s,t,max;
	cin>>n;
	max=0;
	for (i=1; i<=n; i++)
	{   
		cin>>t;
		a[t]=a[t]+1;
	}
	for (i=1; i<=30000; i++)
	  if (a[i]>max)
	    max=a[i];
	for (i=1; i<=30000; i++)
	  if (a[i]==max) cout<<i<<endl<<max<<endl;
}