• HDU1225 字符串


    水题~~

    字符串的处理+排序

    View Code
     1 #include<stdio.h>
     2 #include<string.h>
     3 #include<algorithm>
     4 using namespace std;
     5 const int maxn = 5005;
     6 struct node{
     7     char name[ 105 ];
     8     int win,lost,diff,score;
     9 }team[ maxn ];
    10 int cnt;
    11 void init( int n ){
    12     for( int i=0;i<=n;i++ ){
    13         team[ i ].win=team[ i ].lost=team[ i ].diff=team[ i ].score=0;
    14         //memset( team[i].name,'\0',sizeof( team[i].name ));
    15     }
    16     cnt=0;
    17 }
    18 int find( char tt[] ){
    19     if( cnt==0 ){
    20         strcpy( team[0].name,tt );
    21         cnt++;
    22         return 0;
    23     }
    24     int i;
    25     for( i=0;i<cnt;i++ ){
    26         if( strcmp( tt,team[i].name )==0 ){
    27             return i;
    28         }
    29     }
    30     if( i==cnt ){
    31         strcpy( team[cnt].name,tt );
    32         cnt++;
    33         return cnt-1;
    34     }
    35 }
    36 bool cmp( node a,node b ){
    37     if( a.score!=b.score )
    38         return a.score>b.score;
    39     else if( a.diff!=b.diff )
    40         return a.diff>b.diff;
    41     else if( a.win!=b.win )
    42         return a.win>b.win;
    43     else if( strcmp( a.name,b.name )>0 )
    44         return false;
    45     else return true;
    46 }
    47 int main(){
    48     int n;
    49     while( scanf("%d",&n)!=EOF ){
    50         init( n );
    51         char n1[ 105 ],n2[ 105 ];
    52         int num1,num2;
    53         for( int i=0;i<(n*(n-1));i++ ){
    54             scanf("%s VS %s %d:%d",n1,n2,&num1,&num2);
    55             int f1=find( n1 );
    56             int f2=find( n2 );
    57             if( num1==num2 ){
    58                 team[ f1 ].score++;
    59                 team[ f2 ].score++;
    60                 team[ f1 ].win+=num1;
    61                 team[ f1 ].lost+=num1;
    62                 team[ f2 ].win+=num2;
    63                 team[ f2 ].lost+=num2;
    64             }
    65             else if( num1>num2 ){
    66                 team[ f1 ].win+=num1;
    67                 team[ f1 ].lost+=num2;
    68                 team[ f2 ].win+=num2;
    69                 team[ f2 ].lost+=num1;
    70                 team[ f1 ].score+=3;
    71             }
    72             else if( num1<num2 ){
    73                 team[ f1 ].win+=num1;
    74                 team[ f1 ].lost+=num2;
    75                 team[ f2 ].win+=num2;
    76                 team[ f2 ].lost+=num1;
    77                 team[ f2 ].score+=3;
    78             }
    79         }
    80         for( int i=0;i<n;i++ ){
    81             team[ i ].diff=team[ i ].win-team[ i ].lost;
    82         }
    83         sort( team,team+n,cmp );
    84         for( int i=0;i<n;i++ ){
    85             printf("%s %d\n",team[i].name,team[i].score);
    86         }
    87         printf("\n");
    88     }
    89     return 0;
    90 }
    keep moving...
  • 相关阅读:
    cnblog项目--20190309
    django js引入失效问题
    Python老男孩 day16 函数(六) 匿名函数
    Python老男孩 day16 函数(五) 函数的作用域
    Python老男孩 day15 函数(四) 递归
    Python老男孩 day15 函数(三) 前向引用之'函数即变量'
    Python老男孩 day15 函数(二) 局部变量与全局变量
    Python老男孩 day14 函数(一)
    Python老男孩 day14 字符串格式化
    Python老男孩 day14 集合
  • 原文地址:https://www.cnblogs.com/xxx0624/p/2935684.html
Copyright © 2020-2023  润新知