代码
/******************************************
/* 杭电ACM1004:Let the Balloon Rise
/* 2010/10/11 23:00
/* VS2010 Win7
/* zhuiqiuzhuoyue@hotmail.com
******************************************/
#include <string>
#include <vector>
#include <iostream>//怀疑iostream与vector两个头文件中cin的命名空间冲突
using namespace std;
int main()
{
int total;
vector<string> max_color; //向量存储tests次数
cin>>total;//输入第一次气球的个数
while(total!=0)
{
string *color_list=new string[total]; //一个不重复的颜色列表
int* color_sum=new int[total]; //对应颜色列表的各种气球数目
for(int i=0;i<total;i++)
{
color_list[i]="";
color_sum[i]=0;
}
cin>>color_list[0];//输入第一种颜色
color_sum[0]=1; //对应第一种颜色目前气球数目为1
int colors=1;//目前有一种颜色
int j;
string new_ball;
for(int i=1;i<total;i++)
{
int changed=0;
cin>>new_ball;//新气球!
for(j=0;j<colors;j++)
{//如果新气球在颜色列表中
if(!new_ball.compare(color_list[j]) )//相等就为0
{ color_sum[j]=color_sum[j]+1;
changed=1;
}
}
//如果新气球不在颜色列表中
if (j==colors && !changed)
{
color_list[colors++]=new_ball;//加入新的颜色
color_sum[colors]=1; //这种颜色的气球目前有一个
}
}
int max=0;//最大值
string maxc;//最多的颜色
for (int i=0;i<colors;i++)
{
if (color_sum[i]>max)
{
max=color_sum[i];
maxc=color_list[i];
}
}
max_color.push_back(maxc);//最多的颜色存储在max_color中
cin>>total; //继续输入下一次气球的个数
}
//输出
for(vector<string>::size_type ix=0;ix!=max_color.size();ix++)
{
cout<<max_color[ix]<<endl;
}
return 0;
}
/* 杭电ACM1004:Let the Balloon Rise
/* 2010/10/11 23:00
/* VS2010 Win7
/* zhuiqiuzhuoyue@hotmail.com
******************************************/
#include <string>
#include <vector>
#include <iostream>//怀疑iostream与vector两个头文件中cin的命名空间冲突
using namespace std;
int main()
{
int total;
vector<string> max_color; //向量存储tests次数
cin>>total;//输入第一次气球的个数
while(total!=0)
{
string *color_list=new string[total]; //一个不重复的颜色列表
int* color_sum=new int[total]; //对应颜色列表的各种气球数目
for(int i=0;i<total;i++)
{
color_list[i]="";
color_sum[i]=0;
}
cin>>color_list[0];//输入第一种颜色
color_sum[0]=1; //对应第一种颜色目前气球数目为1
int colors=1;//目前有一种颜色
int j;
string new_ball;
for(int i=1;i<total;i++)
{
int changed=0;
cin>>new_ball;//新气球!
for(j=0;j<colors;j++)
{//如果新气球在颜色列表中
if(!new_ball.compare(color_list[j]) )//相等就为0
{ color_sum[j]=color_sum[j]+1;
changed=1;
}
}
//如果新气球不在颜色列表中
if (j==colors && !changed)
{
color_list[colors++]=new_ball;//加入新的颜色
color_sum[colors]=1; //这种颜色的气球目前有一个
}
}
int max=0;//最大值
string maxc;//最多的颜色
for (int i=0;i<colors;i++)
{
if (color_sum[i]>max)
{
max=color_sum[i];
maxc=color_list[i];
}
}
max_color.push_back(maxc);//最多的颜色存储在max_color中
cin>>total; //继续输入下一次气球的个数
}
//输出
for(vector<string>::size_type ix=0;ix!=max_color.size();ix++)
{
cout<<max_color[ix]<<endl;
}
return 0;
}