QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#613609#9347. Competition in Swiss-systemYour-SunWA 0ms3836kbC++203.5kb2024-10-05 14:19:442024-10-05 14:20:45

Judging History

你现在查看的是最新测评结果

  • [2024-10-05 14:20:45]
  • 评测
  • 测评结果:WA
  • 用时:0ms
  • 内存:3836kb
  • [2024-10-05 14:19:44]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<ll,ll> pll;
#define endl '\n'

struct node
{
    ll mp, gp;
    ll num_game;
    pll mw, gw;
    vector<int> oppenent;
    node()
    {
        mp=gp=num_game=0;
        mw=gw=make_pair(0,0);
    }
};

void reduction(pll &u)
{
    auto &[x,y]=u;
    ll t=__gcd(x,y);
    x/=t, y/=t;
}

pll operator+=(pll &a, const pll &b)
{
    pll res;
    auto [x1,y1]=a;
    auto[x2,y2]=b;
    res.second=lcm(y1,y2);
    res.first=x1*res.second/y1 + x2*res.second/y2;
    reduction(res);
    a=res;
}

void solve()
{
    int n,m;
    cin>>n>>m;
    vector<node> a(n+1);
    int i,j,k;
    vector<int> b(m+1);
    for(i=1;i<=m;i++)
        cin>>b[i];
    
    auto check=[](pll u)
    {
        auto [x,y]=u;
        if(3*x<=y)
            x=1, y=3;
        return make_pair(x,y);
    };
    
    auto fun_omw=[&](node u)->pll
    {
        if(!u.oppenent.size())
            return make_pair(1,3);
        int f=0;
        pll res;
        for(auto idx:u.oppenent)
        {
            if(!f)
            {
                f=1;
                res=check(a[idx].mw);
                continue;
            }
            res+=check(a[idx].mw);
        }
        res.second*=u.oppenent.size();
        reduction(res);
        return res;
    };
    auto fun_gw=[&](pll u)
    {
        auto [x,y]=u;
        ll t=__gcd(x,y);
        x/=t, y/=t;
        pll res=make_pair(x,y);
        return check(res);
    };
    auto fun_ogw=[&](node u)->pll
    {
        if(!u.oppenent.size())
            return make_pair(1,3);
        int f=0;
        pll res;
        for(auto idx:u.oppenent)
        {
            if(!f)
            {
                f=1;
                res=check(a[idx].gw);
                continue;
            }
            res+=check(a[idx].gw);
        }
        res.second*=u.oppenent.size();
        reduction(res);
        return res;
    };

    for(int round=1;round<=m;round++)
    {
        cout<<"Round "<<round<<endl;

        vector<int> vis(n+1);
        for(i=0;i<b[round];i++)
        {
            int p1,p2,w1,w2,d;
            cin>>p1>>p2>>w1>>w2>>d;
            if(w1>w2)   a[p1].mp+=3;
            if(w1<w2)   a[p2].mp+=3;
            if(w1==w2)  a[p1].mp++, a[p2].mp++;
            a[p1].gp+=w1*3+d, a[p2].gp+=w2*3+d;
            a[p1].oppenent.push_back(p2);
            a[p2].oppenent.push_back(p1);
            a[p1].num_game+=w1+w2+d;
            a[p2].num_game+=w1+w2+d;
            vis[p1]=vis[p2]=1;
        }
        for(i=1;i<=n;i++)
        {
            if(!vis[i])
                a[i].mp+=3, a[i].gp+=6, a[i].num_game+=2;
            a[i].mw=make_pair(a[i].mp, round*3);
            a[i].gw=make_pair(a[i].gp, a[i].num_game*3);
        }
        
        for(i=1;i<=n;i++)
        {
            cout<<a[i].mp<<' ';                                 // mp

            pll res_omw=fun_omw(a[i]);
            cout<<res_omw.first<<'/'<<res_omw.second<<' ';      // omw
            
            pll res_gw=fun_gw(a[i].gw);
            cout<<res_gw.first<<'/'<<res_gw.second<<' ';      // gw
            
            pll res_ogw=fun_ogw(a[i]);
            cout<<res_ogw.first<<'/'<<res_ogw.second;      // ogw
            cout<<endl;
        }
    }
}

int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0),cout.tie(0);
    int T;
    cin>>T;
    while(T--)
        solve();
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 0
Wrong Answer
time: 0ms
memory: 3836kb

input:

2
2 3
0 1 1
1 2 2 0 1
1 2 1 1 1
3 2
1 1
1 2 0 2 0
2 3 2 0 0

output:

Round 1
3 1/3 1/1 1/3
3 1/3 1/1 1/3
Round 2
6 1/2 13/15 7/15
3 1/1 7/15 13/15
Round 3
7 2/9 17/24 11/48
4 7/18 11/24 17/48
Round 1
0 1/1 1/3 1/1
3 1/3 1/1 1/3
3 1/3 1/1 1/3
Round 2
3 1/1 1/2 1/1
6 1/4 1/1 1/4
3 1/1 1/2 1/1

result:

wrong answer 8th lines differ - expected: '7 4/9 17/24 11/24', found: '7 2/9 17/24 11/48'