您的位置:首页 > 其它

uva 10194 - Football (aka Soccer)

2012-07-24 11:19 453 查看
View Code

#include<stdio.h>
#include<string.h>
typedef struct node{
int score;
int win;
int lose;
int jball;
int wpoint;
int zchang;
int tie;
int wingame;
int losegame;
char name[35];
}team;
team teams[1005];
int search(char name[],int n)
{
int i;
for(i = 0;i < n;i++)
if(strcmp(name,teams[i].name) == 0)
return i;
return 80;
}

int main()
{
int t,cas,n,i,j,m;
char cup[105],str[205],team1[35],team2[35];
scanf("%d",&cas);
getchar();
while(cas--)
{
gets(cup);
puts(cup);
scanf("%d",&n);
getchar();
for(i = 0;i < n;i++)
teams[i].jball = teams[i].zchang = teams[i].losegame = teams[i].wingame = teams[i].tie = teams[i].lose = teams[i].wpoint =teams[i].score = teams[i].win = 0;
for(i = 0;i < n;i++)
{
gets(teams[i].name);
}
scanf("%d",&m);
getchar();
for(i = 0;i < m;i++)
{
int b1,b2;
gets(str);
char *p,*_p;
p=str;
_p=str;
while(*p!='#')
p++;
*p='\0';
strcpy(team1,_p);
p++;
b1=0;
while(*p!='@')
{
b1=b1*10+*p-'0';
p++;
}
p++;
b2=0;
while(*p!='#')
{
b2=b2*10+*p-'0';
p++;
}
p++;
strcpy(team2,p);

int t1,t2;
t1 = search(team1,n);
t2 = search(team2,n);
teams[t1].zchang++;
teams[t1].lose += b2;
teams[t1].win += b1;
teams[t2].zchang++;
teams[t2].lose += b1;
teams[t2].win += b2;
teams[t1].jball = teams[t1].win - teams[t1].lose;
teams[t2].jball = teams[t2].win -teams[t2].lose;
if(b1>b2)
{
teams[t1].score += 3;
teams[t1].wpoint++;
teams[t2].losegame++;
}
else if(b1 == b2)
{
teams[t1].score += 1;
teams[t2].score += 1;
teams[t1].tie++;
teams[t2].tie++;
}
else
{
teams[t2].score += 3;
teams[t2].wpoint ++;
teams[t1].losegame++;
}
}
for(i = 0;i < n-1;i++)
{
t = i;
for(j = i+1;j < n;j++)
{
if(teams[t].score < teams[j].score)
t = j;
else if(teams[t].score == teams[j].score)
{
if(teams[t].wpoint < teams[j].wpoint)
t = j;
else if(teams[t].wpoint == teams[j].wpoint )
{
if(teams[t].jball < teams[j].jball)
t = j;
else if(teams[t].jball == teams[j].jball)
{
if(teams[t].win < teams[j].win)
t = j;
else if(teams[t].win == teams[j].win)
{
if(teams[t].zchang > teams[j].zchang)
t = j;
else if(teams[t].zchang == teams[j].zchang)
{
if(strcasecmp(teams[t].name,teams[j].name) > 0)
t = j;
}
}
}

}
}
}
if(t != i)
{
team temp;
temp = teams[t];
teams[t] = teams[i];
teams[i] = temp;
}
}
for(i = 0;i < n;i++)
printf("%d) %s %dp, %dg (%d-%d-%d), %dgd (%d-%d)\n",i+1,teams[i].name,teams[i].score,teams[i].zchang,teams[i].wpoint,teams[i].tie,teams[i].losegame,teams[i].jball,teams[i].win,teams[i].lose);
if(cas)printf("\n");
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: