• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            心如止水
            Je n'ai pas le temps
            posts - 400,comments - 130,trackbacks - 0

            還不錯,一次AC。讀入數據時用cin/stringin比較方便處理,輸出時則換用printf。另外注意多關鍵字排序,覺得這題還是使用多次排序比較方便編程。
            以下是我的代碼:

            #include<iostream>
            #include
            <sstream>
            #include
            <vector>
            #include
            <string>
            #include
            <algorithm>
            #include
            <cstdio>
            #include
            <cctype>
            using namespace std;

            struct Type
            {
                Type()
                {
                    name_
            ="";
                    score_
            =win_=lose_=draw_=goal_=all_goal_=game_=0;
                }
                
            string name_;
                
            int score_,win_,lose_,draw_,goal_,all_goal_,game_;
            };

            int n;
            vector
            <Type> r;

            int Team(const string &team_name)
            {
                
            for(int i=0;i<n;i++)
                    
            if(r[i].name_==team_name)
                        
            return i;
            }

            bool cmp_1(const Type &a,const Type &b)
            {
                
            string aa(a.name_),bb(b.name_);
                
            for(int i=0;i<aa.size();i++)
                    aa[i]
            =tolower(aa[i]);
                
            for(int i=0;i<bb.size();i++)
                    bb[i]
            =tolower(bb[i]);
                
            return aa<bb;
            }
            bool cmp_2(const Type &a,const Type &b)
            {
                
            return a.game_<b.game_;
            }
            bool cmp_3(const Type &a,const Type &b)
            {
                
            return a.all_goal_>b.all_goal_;
            }
            bool cmp_4(const Type &a,const Type &b)
            {
                
            return a.goal_>b.goal_;
            }
            bool cmp_5(const Type &a,const Type &b)
            {
                
            return a.win_>b.win_;
            }
            bool cmp_6(const Type &a,const Type &b)
            {
                
            return a.score_>b.score_;
            }

            int main()
            {
                
            int T;
                cin
            >>T;
                getchar();
                
            bool first(true);
                
            while(T--)
                {
                    
            string game_name;
                    getline(cin,game_name);
                    cin
            >>n;
                    getchar();
                    r.resize(n);
                    
            for(int i=0;i<n;i++)
                        getline(cin,r[i].name_);
                    
            int g;
                    cin
            >>g;
                    getchar();
                    
            string s;
                    
            for(int i=0;i<g;i++)
                    {
                        getline(cin,s);
                        
            int pos_1(s.find('#')),pos_2(s.rfind('#'));
                        
            string team_1(s.substr(0,pos_1)),team_2(s.substr(pos_2+1));
                        istringstream sin(s.substr(pos_1
            +1));
                        
            int goal_1,goal_2;
                        sin
            >>goal_1;
                        
            char ch;
                        sin
            >>ch;
                        sin
            >>goal_2;
                        
            int team_1_num(Team(team_1)),team_2_num(Team(team_2));
                        r[team_1_num].all_goal_
            +=goal_1;
                        r[team_1_num].goal_
            +=(goal_1-goal_2);
                        r[team_1_num].game_
            ++;
                        r[team_2_num].all_goal_
            +=goal_2;
                        r[team_2_num].goal_
            +=(goal_2-goal_1);
                        r[team_2_num].game_
            ++;
                        
            if(goal_1>goal_2)
                        {
                            r[team_1_num].score_
            +=3;
                            r[team_1_num].win_
            ++;
                            r[team_2_num].lose_
            ++;
                        }
                        
            else if(goal_1<goal_2)
                        {
                            r[team_2_num].score_
            +=3;
                            r[team_2_num].win_
            ++;
                            r[team_1_num].lose_
            ++;
                        }
                        
            else
                        {
                            r[team_1_num].score_
            ++;
                            r[team_2_num].score_
            ++;
                            r[team_1_num].draw_
            ++;
                            r[team_2_num].draw_
            ++;
                        }
                    }

                    sort(r.begin(),r.end(),cmp_1);
                    stable_sort(r.begin(),r.end(),cmp_2);
                    stable_sort(r.begin(),r.end(),cmp_3);
                    stable_sort(r.begin(),r.end(),cmp_4);
                    stable_sort(r.begin(),r.end(),cmp_5);
                    stable_sort(r.begin(),r.end(),cmp_6);

                    
            if(first)
                        first
            =false;
                    
            else
                        cout
            <<endl;
                    cout
            <<game_name<<endl;
                    
            for(int i=0;i<n;i++)
                        printf(
            "%d) %s %dp, %dg (%d-%d-%d), %dgd (%d-%d)\n",i+1,r[i].name_.c_str(),r[i].score_,r[i].game_,r[i].win_,r[i].draw_,r[i].lose_,r[i].goal_,r[i].all_goal_,r[i].all_goal_-r[i].goal_);

                    fill_n(r.begin(),n,Type());
                }

                
            return 0;
            }
            posted on 2011-04-11 12:02 lee1r 閱讀(728) 評論(0)  編輯 收藏 引用 所屬分類: 題目分類:字符串處理題目分類:排序
            天天综合久久久网| 国产三级久久久精品麻豆三级 | 国产精品青草久久久久福利99| 无码AV波多野结衣久久| 久久久中文字幕| 久久亚洲AV无码精品色午夜麻豆| 欧美一区二区三区久久综| 精品精品国产自在久久高清| 国产综合成人久久大片91| 欧美亚洲国产精品久久高清| 国产三级久久久精品麻豆三级| 久久免费国产精品| 精品蜜臀久久久久99网站| 久久强奷乱码老熟女| 亚洲va久久久噜噜噜久久男同| 999久久久国产精品| 亚洲∧v久久久无码精品| 99久久精品这里只有精品 | 久久精品国产亚洲沈樵| 精品伊人久久久| 久久国产视频99电影| 久久99精品国产| 日韩精品久久久久久久电影蜜臀| 久久免费观看视频| 97精品国产97久久久久久免费| 亚洲成色www久久网站夜月| 久久久精品波多野结衣| 日本精品久久久久中文字幕8| 色综合久久无码中文字幕| 久久青青草视频| 欧美黑人激情性久久| 亚洲精品乱码久久久久久蜜桃| 国产福利电影一区二区三区久久久久成人精品综合 | 国产精品伦理久久久久久| 国产精品久久久福利| 久久亚洲美女精品国产精品| 久久99久国产麻精品66| 久久亚洲精品国产亚洲老地址| 久久精品中文字幕有码| 久久久99精品一区二区| 久久人搡人人玩人妻精品首页 |