描述

今天IBM技术俱乐部举行主席竞选,你的任务是统计谁是得票最多的候选人。

输入

输入数据包含多组测试案例。
每组测试案例由N(0<N<1000)开头,N表示投票总数,后续N行每行包含一个参加主席竞选的候选人代号(多达18个字母或数字),表示得到有效选票。
一个测试案例的N=0表示输入的结束,无需处理。

输出

对于每个测试用例,把得票最多的候选人名字打印在单独一行上。每个测试案例都仅有一种候选得票是最多的。

样例输入

6
young
CS
showtyt
Titan
young
zt
4
M07000315
sed
B07031006
M07000315
0

样例输出

young
M07000315

 1 #include<iostream>
 2 #include<string>
 3 #include<algorithm>
 4 using namespace std;
 5 
 6 int cmp(string a,string b)
 7 {
 8     return a<b;
 9 }
10 
11 int main()
12 {
13     string str[110];
14     int n,i,sum,max,p;
15     while(cin>>n)
16     {
17         for(i=0;i<n;i++)
18             cin>>str[i];
19         sort(&str[0],&str[0]+n,cmp);
20         for(i=0,p=0,max=-1;i<n-1;i++)
21         {
22             sum=1;
23             while(str[i+1]==str[i]&&i<n-1)
24                 sum++,i++;
25             if(sum>max)
26                 max=sum,p=i;
27         }
28         cout<<str[p]<<endl;
29     }
30     return 0;
31 }