这次是超时,怎么改进呢?
杭电ACM1004题
#include<iostream>
#include<string>
using namespace std;
const int ballNumber = 1000;
struct ball
{
string balloon;
};
struct popular
{
string balloon;
int number;
};
int pLength = 0;
int MaxPosition(popular *pop)
{
int Max = 0;
int Position = 0;
for(int i = 0; i < pLength; i ++)
{
if(pop[i].number > Max)
{
Max = pop[i].number;
Position = i;
}
}
return Position;
}
int main()
{
while(1)
{
ball b[ballNumber];
popular p[ballNumber];
int N;
for(int i = 0; i < ballNumber; i ++)
{
p[i].number = 0;
}
cin >> N;
if(N == 0)
break;
else
{
for(int i = 0; i < N; i ++)
{
cin >> b[i].balloon;
}
p[0].balloon = b[0].balloon;
p[0].number ++;
pLength ++;
for(int i = 1; i < N; i ++)
{
int find = 0;
for(int j = 0; j < pLength; j ++)
if(p[j].balloon == b[i].balloon)
{
p[j].number ++;
find = 1;
break;
}
if(!find)
{
p[pLength].balloon = b[i].balloon;
p[pLength].number ++;
pLength ++;
}
}
}
int m = MaxPosition(p);
cout << p[m].balloon;
}
}
转载于:https://www.cnblogs.com/cnlox/archive/2008/12/31/1419416.html