第四个点WA求助
查看原帖
第四个点WA求助
569437
SunburstFan楼主2022/10/6 11:35
#include<cstdio>
#include<string>
#include<iostream>
#include<algorithm>
using namespace std;
int n;
struct team
{
    string name;
    int sco,win,bal;
}a[55];
bool cmp(team x,team y)
{
    if(x.sco!=y.sco)return x.sco>y.sco;
    if(x.win!=y.win)return x.win>y.win;
    if(x.bal!=y.bal)return x.bal>y.bal;
    return x.name<y.name;
}
string ans[55];
int main()
{
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
        cin>>a[i].name;
    for(int i=1;i<=n*(n-1)/2;i++)
    {
        int cnt=0;
        string s,name[2];
        name[0]="";
        name[1]="";
        int game1,game2,team1,team2;
        cin>>s;
        s+='-';
        scanf("%d:%d",&game1,&game2);
        for(int j=0;j<s.length();j++)
        {
            if(s[j]!='-')name[cnt]+=s[j];
            else cnt++;
        }
        for(int j=1;j<=n;j++)
        {
            if(a[j].name.length()!=name[0].length())continue;
            bool flag=0;
            for(int k=0;k<=name[0].length();k++)
                if(a[j].name[k]!=name[0][k])flag=1;
            if(!flag)
            {
                team1=j;
                break;
            }
        }
        for(int j=1;j<=n;j++)
        {
            if(a[j].name.length()!=name[1].length())continue;
            bool flag=0;
            for(int k=0;k<=name[1].length();k++)
                if(a[j].name[k]!=name[1][k])flag=1;
            if(!flag)
            {
                team2=j;
                break;
            }
        }
        a[team1].bal+=game1;
        a[team2].bal+=game2;
        if(game1==game2)
        {
            a[team1].sco+=1;
            a[team2].sco+=1;
        }
        else if(game1>game2)
        {
            a[team1].sco+=3;
            a[team1].win++;
        }
        else if(game1<game2)
        {
            a[team2].sco+=3;
            a[team2].win++;
        }
    }
    sort(a+1,a+n+1,cmp);
    int cnt=0;
    for(int i=1;i<=n/2;i++)
        ans[++cnt]=a[i].name;
    sort(ans+1,ans+1+cnt);
    for(int i=1;i<=cnt;i++)
        cout<<ans[i]<<endl;
    return 0;
}
2022/10/6 11:35
加载中...