• <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。讀入數(shù)據(jù)時用cin/stringin比較方便處理,輸出時則換用printf。另外注意多關(guān)鍵字排序,覺得這題還是使用多次排序比較方便編程。
            以下是我的代碼:

            #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)  編輯 收藏 引用 所屬分類: 題目分類:字符串處理題目分類:排序
            99久久国产亚洲综合精品| 国产成年无码久久久久毛片| 久久精品草草草| 国产精品熟女福利久久AV| 91精品国产综合久久四虎久久无码一级| 久久久久久a亚洲欧洲aⅴ| 精品久久久久久国产三级| 国产精品成人久久久| 国产国产成人精品久久| 久久成人18免费网站| 中文国产成人精品久久不卡| 久久99毛片免费观看不卡| 亚洲国产成人久久一区久久| 国产亚洲精品美女久久久| 久久久久亚洲精品中文字幕 | 久久99精品久久久久婷婷| 国产免费久久久久久无码| 亚洲精品乱码久久久久66| 国产精品狼人久久久久影院| 日日噜噜夜夜狠狠久久丁香五月| 国产农村妇女毛片精品久久| 久久综合狠狠综合久久综合88| 久久精品亚洲乱码伦伦中文 | 四虎亚洲国产成人久久精品| 99久久国产热无码精品免费| 久久精品国产欧美日韩99热| 精品国产乱码久久久久久浪潮| 精品久久久无码人妻中文字幕豆芽 | 久久这里只有精品首页| 久久99精品久久久久久秒播| 99久久国语露脸精品国产| 婷婷久久香蕉五月综合加勒比 | 久久精品极品盛宴观看| 久久久久亚洲AV成人网| 久久国产精品久久国产精品| www性久久久com| 99久久99久久精品免费看蜜桃| 久久久久亚洲AV无码永不| 亚洲国产欧洲综合997久久| 久久最近最新中文字幕大全 | 久久伊人色|