7-14 電話聊天狂人 (25 分)
阿新 • • 發佈:2018-12-16
給定大量手機使用者通話記錄,找出其中通話次數最多的聊天狂人。
輸入格式:
輸入首先給出正整數N(≤105),為通話記錄條數。隨後N行,每行給出一條通話記錄。簡單起見,這裡只列出撥出方和接收方的11位數字構成的手機號碼,其中以空格分隔。
輸出格式:
在一行中給出聊天狂人的手機號碼及其通話次數,其間以空格分隔。如果這樣的人不唯一,則輸出狂人中最小的號碼及其通話次數,並且附加給出並列狂人的人數。
輸入樣例:
4
13005711862 13588625832
13505711862 13088625832
13588625832 18087925832
15005713862 13588625832
輸出樣例:
13588625832 3
#include <bits/stdc++.h>
using namespace std;
int main()
{
map<string,int>mp;
int cnt=0,n,maxn=0;
string s,ss;
cin>>n;
for(int i=0;i<2*n;i++){
cin>>s;
mp[s]++;
}
map<string,int>::iterator it;
for(it=mp.begin ();it!=mp.end();it++){
if(it->second>maxn){
ss=it->first;
maxn=it->second;
}
}
for(it=mp.begin();it!=mp.end();it++){
if(it->second==maxn){
cnt++;
}
}
cout<<ss<<" "<<maxn;
if(cnt!= 1)cout<<" "<<cnt<<endl;
}