1331 2022. 05. 14 14:51:46 nkdorka1212 Útadó cpp11 Elfogadva 50/50 67ms 23732 KiB
#include <bits/stdc++.h>

using namespace std;
typedef long long ll;
#pragma GCC target ("avx2")
#pragma GCC optimization ("O3")
#pragma GCC optimization ("unroll-loops")

ll mod=32609;
ll n;
vector<ll>vis;
vector<vector<ll>>g;
vector<ll>child;
vector<ll>row;
vector<ll>ado;
vector<bool>kifok;
vector<pair<ll,pair<ll,ll>>>elek;


void dfs(ll v)
{
    vis[v]=true;
    for(ll x:g[v])
    {
        if(!vis[x])
        {
            dfs(x);
        }
    }
    row.push_back(v);
}

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    cin>>n;
    vis.resize(n+1,0);
    g.resize(n+1);
    child.resize(n+1,0);
    ado.resize(n-1);
    kifok.resize(n+1,0);
    for(ll i=1;i<=n-1;i++)
    {
        ll a,b;
        cin>>a>>b;
        g[a].push_back(b);
        kifok[a]=true;
        elek.push_back({0,{a,b}});
    }
    for(ll i=0;i<=n-2;i++)
    {
        cin>>ado[i];
    }
    sort(ado.begin(),ado.end());
    dfs(1);
    for(ll x:row)
    {
        if(!kifok[x])
        {
            child[x]=1;
        }else
        {
            for(ll y:g[x])
            {
                child[x]+=child[y];
            }
            child[x]+=1;
        }
    }
    for(auto &x:elek)
    {
        x.first=child[x.second.second]*(n-child[x.second.second]);
    }
    sort(elek.begin(),elek.end());
    ll sum=0;
    for(ll i=0;i<=n-2;i++)
    {
        sum+=ado[i]*elek[i].first;
        sum%=mod;
        elek[i].first=ado[i];
    }
    sum*=2;
    sum%=mod;
    cout<<sum<<'\n';
    for(auto x:elek)
    {
        cout<<x.second.first<<" "<<x.second.second<<" "<<x.first<<'\n';
    }
    return 0;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 50/50
1 Elfogadva 0/0 2ms 1804 KiB
2 Elfogadva 0/0 23ms 6824 KiB
3 Elfogadva 2/2 1ms 2284 KiB
4 Elfogadva 2/2 1ms 2284 KiB
5 Elfogadva 2/2 1ms 2288 KiB
6 Elfogadva 2/2 1ms 2296 KiB
7 Elfogadva 2/2 1ms 2300 KiB
8 Elfogadva 8/8 61ms 19820 KiB
9 Elfogadva 2/2 2ms 3576 KiB
10 Elfogadva 2/2 2ms 3604 KiB
11 Elfogadva 2/2 2ms 3628 KiB
12 Elfogadva 2/2 2ms 3652 KiB
13 Elfogadva 2/2 2ms 3668 KiB
14 Elfogadva 2/2 61ms 14936 KiB
15 Elfogadva 2/2 67ms 16004 KiB
16 Elfogadva 2/2 54ms 17064 KiB
17 Elfogadva 2/2 54ms 18128 KiB
18 Elfogadva 2/2 54ms 17832 KiB
19 Elfogadva 2/2 57ms 18944 KiB
20 Elfogadva 2/2 54ms 20080 KiB
21 Elfogadva 2/2 54ms 21144 KiB
22 Elfogadva 2/2 54ms 21600 KiB
23 Elfogadva 2/2 57ms 22676 KiB
24 Elfogadva 2/2 52ms 23732 KiB