http://acm.zjut.edu.cn/ShowProblem.aspx?ShowID=1672
#include<iostream>
#include<iomanip>
#include<string>
#include<map>
using namespace std;
int num(string s)
{
string ss;
ss.clear();
int sum=0;
for(int i=0;i<s.size();i++)
{
if(s[i]!='.')ss+=s[i];
}
for(int i=0;i<ss.size();i++)
{
sum=sum*10+(ss[i]-'0');
}
return sum;
}
int main()
{
cout.precision(1);
int n,cas=0;
string s,ss;
map<string,int> m;
map<string,int> c;
while(scanf("%d",&n)==1)
{
cas++;
m.clear();
c.clear();
for(int i=0;i<n;i++)
{
ss.clear();
while(cin>>s)
{
if(s.find('.')!=s.npos)
{
ss=ss.substr(0,ss.size()-1);
c[ss]++;
m[ss]+=num(s);
break;
}
ss+=s+' ';
}
}
map <string,int> ::iterator it1;
double ans=0;
string ANS;
for(it1=m.begin();it1!=m.end();it1++)
{
if((it1->second)>ans*c[it1->first])
{
ans=(it1->second)*1.0/c[it1->first];
ANS=it1->first;
}
}
cout<<cas<<" "<<ANS<<" "<<fixed<<ans*1.0/10<<endl;
}
}