点击打开链接 密码:syuct
Let the Balloon Rise
Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other)
Total Submission(s) : 1 Accepted Submission(s) : 1
Font: Times New Roman | Verdana | Georgia
Font Size: ← →
Problem Description
Input
Input contains multiple test cases. Each test case starts with a number N (0 < N <= 1000) -- the total number of balloons distributed. The next N lines contain one color each. The color of a balloon is a string of up to 15 lower-case letters.
A test case with N = 0 terminates the input and this test case is not to be processed.
A test case with N = 0 terminates the input and this test case is not to be processed.
Output
For each case, print the color of balloon for the most popular problem on a single line. It is guaranteed that there is a unique solution for each test case.
Sample Input
5 green red blue red red 3 pink orange pink 0
Sample Output
red pink
利用了map的特性,然后便利map,用迭代器
#include<iostream>
#include<cstdio>
#include<cstring>
#include<map>
#include<string>
using namespace std;
int main()
{
int n;
char a[20];
while(scanf("%d",&n),n)
{
map<string,int>words;
for(int i=0; i<n; i++)
{
cin>>a;
words[a]++;
}
int k=0;
map<string,int>::iterator it;
it=words.begin();
while(it!=words.end())
{
if(it->second>k)
{
k=it->second;
}
it++;
}
it=words.begin();
while(it!=words.end())
{
if(it->second==k)
{
cout<<it->first<<endl;;
break;
}
it++;
}
}
return 0;
}
map的迭代
定义一个迭代器(以int&int的map为例):map<int,int>::iterator mapi;
然后遍历map就可以写成
for(mapi=map.begin;mapi!=map.end;mapi++)
{
int a=mapi->first;
int b=mapi->second;
}