正文

zju2005-10-07 13:42:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/elva6401/5803.html

分享到:

http://acm.zju.edu.cn/icpc2005/pre/show_problem.php?cid=141&pid=1004

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
struct Team
{
 char Nm[20];
 int w;
 int d;
 int l;
 int Pt;
 int Gd;
};
int comp(const void *a,const void *b)
{
 struct Team *t1=(struct Team *)a;
 struct Team *t2=(struct Team *)b;
 if(t1->Pt>t2->Pt) return 1;
 if(t1->Pt<t2->Pt) return -1;
 if(t1->Gd>t2->Gd) return 1;
 if(t1->Gd<t2->Gd) return -1;
 if(strcmp(t1->Nm,t2->Nm)<0) return 1;
 return -1;
}
 
int main()
{
 struct Team T[20000];
 char T1[20],T2[20];
 int v1,v2;
 int n,i,j;
 int N;
 int flag,pos;
 while(scanf("%d",&n))
 {
  N=0;
  for(i=0;i<n;i++)
  {
   scanf("%s %d:%d %s",T1,&v1,&v2,T2);
   for(j=0,flag=0;j<N;j++)
   {
    if(strcmp(T1,T[j].Nm)==0)
    {
     flag=1;
     pos=j;
     break;
    }
   }
   if(flag==0)
   {
    strcpy(T[N].Nm,T1);
    T[N].w=T[N].d=T[N].l=T[N].Pt=T[N].Gd=0;
    if(v1>v2)
    {
     T[N].w=1;
     T[N].Pt=3;
     T[N].Gd=v1-v2;
    }
    else if(v1==v2)
    {
     T[N].d=1;
     T[N].Pt=1;
    }
    else
    {
     T[N].l=1;
     T[N].Gd=v1-v2;
    }
    N++;
   }
   else
   {
    if(v1>v2)
    {
     T[pos].w+=1;
     T[pos].Pt+=3;
     T[pos].Gd+=v1-v2;
    }
    else if(v1==v2)
    {
     T[pos].d+=1;
     T[pos].Pt+=1;
    }
    else
    {
     T[pos].l+=1;
     T[pos].Gd+=v1-v2;
    }
   }

 

   for(j=0,flag=0;j<N;j++)
   {
    if(strcmp(T2,T[j].Nm)==0)
    {
     flag=1;
     pos=j;
     break;
    }
   }
   if(flag==0)
   {
    strcpy(T[N].Nm,T2);
    T[N].w=T[N].d=T[N].l=T[N].Pt=T[N].Gd=0;
    if(v1<v2)
    {
     T[N].w=1;
     T[N].Pt=3;
     T[N].Gd=v2-v1;
    }
    else if(v1==v2)
    {
     T[N].d=1;
     T[N].Pt=1;
    }
    else
    {
     T[N].l=1;
     T[N].Gd=v2-v1;
    }
    N++;
   }
   else
   {
    if(v1<v2)
    {
     T[pos].w+=1;
     T[pos].Pt+=3;
     T[pos].Gd+=v2-v1;
    }
    else if(v1==v2)
    {
     T[pos].d+=1;
     T[pos].Pt+=1;
    }
    else
    {
     T[pos].l+=1;
     T[pos].Gd+=v2-v1;
    }
   }
  }
  qsort(T,N,sizeof(struct Team),comp);

  for(i=N-1;i>=0;i--)
   printf("%d %s %d %d %d %d %d\n",N-i,T[i].Nm,T[i].w,T[i].d,T[i].l,T[i].Pt,T[i].Gd);
 }
}

阅读(4631) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册