#include <iostream> #include <cstdio> #include <algorithm> #include <cstring> #include <cstdlib> #include <queue> #include <cmath> using namespace std; const int MN=10005; struct team { char name[25]; int w,d,l,pt,wins,losts,gd; }result[MN]; void calcu(char a[],int i,int p,int q) { strcpy (result[i].name,a); if(p>q) result[i].w++; else if(p==q) result[i].d++; else result[i].l++; result[i].wins+=p; result[i].losts+=q; } bool cmp(struct team a1,struct team a2) { if(a1.pt!=a2.pt) return a1.pt>a2.pt; else if(a1.gd!=a2.gd) return a1.gd>a2.gd; else return strcmp(a1.name,a2.name)<0; } int main() { int n,q,p,i,j; char a[25],b[25]; int flag=0; while(scanf("%d",&n)!=EOF){ if(flag) printf("n"); flag=1; int num=0; memset(result,0,sizeof(result)); for(i=0;i<n;i++){ scanf("%s%d:%d%s",a,&p,&q,b); for(j=0;j<num;j++) { if(strcmp(a,result[j].name)==0) break; } if(j==num) { calcu(a,num,p,q); num++; } else calcu(a,j,p,q); for(j=0;j<num;j++) { if(strcmp(b,result[j].name)==0) break; } if(j==num) { calcu(b,j,q,p); num++; } else calcu(b,j,q,p); } for(i=0;i<num;i++) { result[i].pt=result[i].w*3+result[i].d; result[i].gd=result[i].wins-result[i].losts; } sort(result,result+num,cmp); for(i=0;i<num;i++) { printf("%d %s %d %d %d %d %dn",i+1,result[i].name,result[i].w,result[i].d,result[i].l,result[i].pt,result[i].gd); } } return 0; }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)