总时间限制: 1000ms 内存限制: 1000kB
描述
给定含有 n 个元素的多重集合 S,每个元素在 S 中出现的次数称为该元素的重数。多重集 S 中重数最大的元素称为众数。例如,S={1,2,2,2,3,5}。多重集 S 的众数是 2,其重数为 3。对于给定的 n 个自然数组成的多重集 S,计算 S 的众数及其重数。
输入
输入集合大小 n 及 n 个数
输出
输出两行
第一行为众数
第二行为重数
样例输入
6
1 2 2 2 3 5
样例输出
2
3
#include<iostream>
using namespace std;
int main()
{
int i,j,n,same,max=-1;
// 输入
int a[5000],b[5000];
cin>>n;
for(i=0;i<n;i++){cin>>a[i];
}
for(i=0;i<n;i++){b[i]=0;
}
// 记录个数
for(i=0;i<n;i++){for(j=0;j<n;j++){if(a[i]==a[j])
b[i]++;
}
}
for(i=0;i<n;i++)
{if(b[i]>max){max=b[i];
same=a[i];
}
if(b[i]==max)
{if(a[i]<a[max]){max=b[i];
same=a[i];
}
}
}
cout<<same<<" "<<max;
return 0;
}