给定 n 个整数,求里面出现次数最多的数,如果有多个重复出现的数,求出值最大的一个。
输入格式
第一行输入一个整数n(1≤n≤100000),接下来一行输入 n 个 int 范围内的整数。
输出格式
输出出现次数最多的数和出现的次数,中间用一个空格隔开,如果有多个重复出现的数,输出值最大的那个。
样例输入1
5 1 1 2 3 4
样例输出1
1 2
样例输入2
10 9 10 27 4 9 10 3 1 2 6
样例输出2
解题说明:略
10 2
#include<iostream>
#include<algorithm>
#include<map>
using namespace std;
int maxnum=0,maxval=0;
int main(){
map<int ,int>m;
int n;
cin>>n;
int tmp;
while(n--){
cin>>tmp;
m[tmp]++;
}
for(map<int,int>::iterator it=m.begin();it!=m.end();++it){
if(it->second==maxval){
maxval=it->second;
if(it->first>maxnum)maxnum=it->first;
}
if(it->second>maxval)maxval=it->second,maxnum=it->first;
}
cout<<maxnum<<" "<<maxval<<endl;
return 0;
}