QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#613788#9347. Competition in Swiss-systemshmilycCompile Error//C++113.4kb2024-10-05 14:45:192024-10-05 14:45:28

Judging History

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

  • [2024-10-05 14:45:28]
  • 评测
  • [2024-10-05 14:45:19]
  • 提交

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;
    // return 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

answer.code: In function ‘void reduction(pll&)’:
answer.code:22:11: warning: structured bindings only available with ‘-std=c++17’ or ‘-std=gnu++17’ [-Wc++17-extensions]
   22 |     auto &[x,y]=u;
      |           ^
answer.code: In function ‘pll operator+=(pll&, const pll&)’:
answer.code:30:10: warning: structured bindings only available with ‘-std=c++17’ or ‘-std=gnu++17’ [-Wc++17-extensions]
   30 |     auto [x1,y1]=a;
      |          ^
answer.code:31:9: warning: structured bindings only available with ‘-std=c++17’ or ‘-std=gnu++17’ [-Wc++17-extensions]
   31 |     auto[x2,y2]=b;
      |         ^
answer.code:32:16: error: ‘lcm’ was not declared in this scope
   32 |     res.second=lcm(y1,y2);
      |                ^~~
answer.code:37:1: warning: no return statement in function returning non-void [-Wreturn-type]
   37 | }
      | ^
answer.code: In lambda function:
answer.code:51:14: warning: structured bindings only available with ‘-std=c++17’ or ‘-std=gnu++17’ [-Wc++17-extensions]
   51 |         auto [x,y]=u;
      |              ^
answer.code: In lambda function:
answer.code:79:14: warning: structured bindings only available with ‘-std=c++17’ or ‘-std=gnu++17’ [-Wc++17-extensions]
   79 |         auto [x,y]=u;
      |              ^