#include
<iostream>
#include<vector>
#include <utility>
#include <map>
#include <string>
using namespace std;
//本程序优点:可以存储并列元素
int main()
{
vector<pair<int,string> > max; //存储符合要求的单词
string currentStr,str; //存储当前正在统计的单词
int currentCount=0; //存储当前正在统计的结果
//循环输入单词列表,直到输入文件结束符
while(cin>>str)
{
//当输入元素和上一个元素相同时
//累计统计变量
if(str==currentStr)
{
++currentCount;
}
//当输入元素和上一个元素不同时
//判断是否将当前统计数据插入
else
{
//max数组为空或者出现并列元素,则直接插入
//并列元素指的是first成员相等,second成员不同的pair对象
if(max.empty ()|| (currentCount==max[0].first && currentStr!=max[0].second))
{
max.push_back (make_pair(currentCount,currentStr));
}
//出现新的连续出现次数最多的元素
//清空数组,插入最新元素
else if(currentCount>max[0].first)
{
max.clear ();
max.push_back (make_pair(currentCount,currentStr));
}
//更新最新当前元素数据
currentStr=str;
currentCount=1;
}
}
//输出结果:
if(max.empty ())
{
cout<<"Can not find the string elem!"<<endl;
}else{
for(vector<pair<int,string> >::iterator index=max.begin ();index!=max.end ();++index)
{
cout<<index->second<<":"<<index->first<<endl;
}
}
return 0;
}