13312022-05-14 14:51:46nkdorka1212Útadócpp11Elfogadva 50/5067ms23732 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ÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/02ms1804 KiB
2Elfogadva0/023ms6824 KiB
3Elfogadva2/21ms2284 KiB
4Elfogadva2/21ms2284 KiB
5Elfogadva2/21ms2288 KiB
6Elfogadva2/21ms2296 KiB
7Elfogadva2/21ms2300 KiB
8Elfogadva8/861ms19820 KiB
9Elfogadva2/22ms3576 KiB
10Elfogadva2/22ms3604 KiB
11Elfogadva2/22ms3628 KiB
12Elfogadva2/22ms3652 KiB
13Elfogadva2/22ms3668 KiB
14Elfogadva2/261ms14936 KiB
15Elfogadva2/267ms16004 KiB
16Elfogadva2/254ms17064 KiB
17Elfogadva2/254ms18128 KiB
18Elfogadva2/254ms17832 KiB
19Elfogadva2/257ms18944 KiB
20Elfogadva2/254ms20080 KiB
21Elfogadva2/254ms21144 KiB
22Elfogadva2/254ms21600 KiB
23Elfogadva2/257ms22676 KiB
24Elfogadva2/252ms23732 KiB