• <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)  編輯 收藏 引用 所屬分類: 題目分類:字符串處理題目分類:排序
            伊人精品久久久久7777| 亚洲国产成人久久综合野外| 99久久精品这里只有精品 | 久久777国产线看观看精品| 亚洲综合久久综合激情久久| 国产国产成人久久精品| 亚洲国产欧美国产综合久久 | 久久本道久久综合伊人| 国产精品久久久久久久人人看| 伊人色综合久久天天人手人婷 | 国产精品一久久香蕉国产线看观看| 久久精品成人免费看| 久久强奷乱码老熟女| 91精品国产综合久久精品| 国内精品伊人久久久久777| 国产一区二区精品久久| 久久这里都是精品| 久久久久无码精品国产app| 久久夜色精品国产亚洲| 久久男人Av资源网站无码软件| 国产免费久久精品99re丫y| 国产成人精品久久一区二区三区 | 久久久受www免费人成| 久久综合九色综合网站| 2020久久精品国产免费| 2019久久久高清456| 久久性精品| 久久久久一级精品亚洲国产成人综合AV区 | 乱亲女H秽乱长久久久| 精品久久亚洲中文无码| 无码人妻少妇久久中文字幕蜜桃| 久久久精品视频免费观看| 91精品日韩人妻无码久久不卡 | 午夜视频久久久久一区| 亚洲伊人久久综合影院| 久久精品国产精品亜洲毛片| 国产精品久久久久一区二区三区| 国产精品久久久久天天影视| 久久精品国产亚洲沈樵| 久久久久久狠狠丁香| 国产69精品久久久久99|