9320 2024. 02. 20 13:05:19 Ablablabla Útadó cpp17 Elfogadva 50/50 104ms 17396 KiB
#include <bits/stdc++.h>

using namespace std;


typedef long long ll;
typedef pair<ll, ll> pii;

const ll MOD = 32609;

vector<vector<ll>> csucsok;
vector<ll> alatta;

ll bejar(ll akt, ll elozo){
    for(ll x : csucsok[akt]){
        if(x == elozo) continue;

        alatta[akt] += bejar(x, akt);
    }

    alatta[akt]++;
    return alatta[akt];
}

int main()
{
    ll n;
    cin >> n;

    ll m = n - 1;

    csucsok.assign(n, vector<ll>());
    vector<pii> elek;
    for(ll i = 0; i < m; i++){
        ll a, b;
        cin >> a >> b;
        a--; b--;

        csucsok[a].push_back(b);
        csucsok[b].push_back(a);
        elek.push_back({a, b});
    }

    alatta.assign(n, 0);
    bejar(0, -1);

    vector<ll> adok(m);
    for(ll i = 0; i < m; i++){
        cin >> adok[i];
    }

    sort(adok.begin(), adok.end(), greater<ll>());

    vector<pii> sor(m);
    for(ll i = 0; i < m; i++){
        ll a = alatta[elek[i].first];
        ll b = alatta[elek[i].second];

        ll lent, fent;

        if(a < b){
            lent = a;
            fent = n - a;
        } else{
            lent = b;
            fent = n - b;
        }

        sor[i] = {lent * fent, i};
    }

    ll valasz = 0;

    sort(sor.begin(), sor.end(), greater<pii>());
    for(ll i = 0; i < m; i++){
        valasz += sor[i].first * adok[i];
        valasz %= MOD;
    }

    cout << (valasz * 2) % MOD << "\n";

    for(ll i = 0; i < m; i++){
        cout << elek[sor[i].second].first + 1 << " " << elek[sor[i].second].second + 1 << " " << adok[i] << "\n";
    }
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 50/50
1 Elfogadva 0/0 3ms 1996 KiB
2 Elfogadva 0/0 41ms 6664 KiB
3 Elfogadva 2/2 3ms 2384 KiB
4 Elfogadva 2/2 3ms 2576 KiB
5 Elfogadva 2/2 3ms 2788 KiB
6 Elfogadva 2/2 3ms 2964 KiB
7 Elfogadva 2/2 3ms 2864 KiB
8 Elfogadva 8/8 98ms 17396 KiB
9 Elfogadva 2/2 4ms 3076 KiB
10 Elfogadva 2/2 4ms 3196 KiB
11 Elfogadva 2/2 4ms 3324 KiB
12 Elfogadva 2/2 4ms 3176 KiB
13 Elfogadva 2/2 4ms 3172 KiB
14 Elfogadva 2/2 101ms 14080 KiB
15 Elfogadva 2/2 100ms 14372 KiB
16 Elfogadva 2/2 101ms 14276 KiB
17 Elfogadva 2/2 101ms 14280 KiB
18 Elfogadva 2/2 101ms 14280 KiB
19 Elfogadva 2/2 101ms 14152 KiB
20 Elfogadva 2/2 101ms 14152 KiB
21 Elfogadva 2/2 101ms 14152 KiB
22 Elfogadva 2/2 103ms 14288 KiB
23 Elfogadva 2/2 104ms 14360 KiB
24 Elfogadva 2/2 103ms 14600 KiB