
#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; }