代码
/******************************************
/*    杭电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;
}

 

posted on 2010-10-11 23:36  子桥  阅读(742)  评论(0编辑  收藏  举报