akoj-1265-足球世界杯小组赛(加强版)(结构体排序)

来源:互联网 发布:python sum函数 编辑:程序博客网 时间:2024/05/01 00:41

足球世界杯小组赛(加强版)

Time Limit:1000MS  Memory Limit:65536K
Total Submit:59 Accepted:14

Description

世界杯小组赛的规则是胜一场则得3分,负得0分,平局则各得1分,现在给你4只球队,和他们的比赛结果,你的任务是输出该组的出线名单

Input

四个球队的名称和比赛场数N,及N场比赛数据,格式是 主球队名称 客球队名称 主队进球数 客队进球数 
规则是胜者得3分,平局各得一分,负者不得分。 
相同的积分,按照净胜球个数比,相同的净胜球按照进球数来排序,为了简化我们假定每组都没有并列且分出了比赛结果 

Output

你的任务是输出队伍的最终出线名单,按照名次降序

Sample Input

A B C D6A B 3 4C D 0 5A C 2 0B D 3 2B C 1 0A D 4 3

Sample Output

B A

Hint

B三场积9分,A三场积6分,出线

Source

#include<iostream>#include<algorithm>using namespace std;struct P{    string s;    int jifen;    int jinshengqiu;    int qiushu;} q[4];int dec(const void*a,const void*b){    P* ta=(P*)a;    P* tb=(P*)b;    if(ta->jifen!=tb->jifen)        return tb->jifen-ta->jifen;    if( tb->jinshengqiu-ta->jinshengqiu)        return tb->jinshengqiu-ta->jinshengqiu;    return tb->qiushu-ta->qiushu;}int main(){    for(int i=0; i<4; i++)        cin>>q[i].s;    int n;    cin>>n;    while(n--)//读入    {        string e,f;        int a,b;        cin>>e>>f>>a>>b;        for(int i=0; i<4; i++)        {            if(e==q[i].s)            {                q[i].qiushu+=a;                if(a>b)                {                    q[i].jinshengqiu+=a-b;                    q[i].jifen+=3;                }                if(a==b)q[i].jifen++;            }            if(f==q[i].s)            {                q[i].qiushu+=b;                if(a<b)                {                    q[i].jinshengqiu+=b-a;                    q[i].jifen+=3;                }                if(a==b)q[i].jifen++;            }        }    }    qsort(q,4,sizeof(P),dec);//排序输出    cout<<q[0].s<<" "<<q[1].s<<endl;    return 0;}

0 0
原创粉丝点击