• <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 閱讀(735) 評論(0)  編輯 收藏 引用 所屬分類: 題目分類:字符串處理題目分類:排序
            久久久SS麻豆欧美国产日韩| 久久精品国产亚洲av麻豆色欲| 丁香色欲久久久久久综合网| 久久综合伊人77777麻豆| 亚洲国产成人久久综合碰碰动漫3d| 99久久免费国产精品热| 久久综合丝袜日本网| 久久久久九国产精品| 久久久久久曰本AV免费免费| 久久精品国产亚洲av麻豆色欲| 久久精品国产亚洲Aⅴ香蕉| 色婷婷狠狠久久综合五月| 日韩人妻无码精品久久久不卡| 四虎国产精品免费久久久| 久久这里都是精品| 亚洲国产成人精品女人久久久 | 精品久久人人爽天天玩人人妻| 亚洲AV无码久久| 精品国产乱码久久久久久1区2区| 久久久久久国产a免费观看不卡| 97久久精品午夜一区二区| 97精品伊人久久久大香线蕉| 国产精品久久久久久久| 精品久久人人做人人爽综合| 国内精品久久久久国产盗摄| 2020久久精品亚洲热综合一本| 久久丝袜精品中文字幕| 久久精品人人做人人爽电影| 亚洲精品无码久久久久去q| 久久国产高清字幕中文| 久久伊人五月天论坛| 国产日产久久高清欧美一区| 久久综合狠狠色综合伊人| 久久亚洲精品无码VA大香大香| 国内精品久久久久久久97牛牛| 亚洲综合久久夜AV | 久久99国产一区二区三区| www久久久天天com| 久久久久99精品成人片直播| 久久久久99这里有精品10| 中文字幕无码久久人妻|