1029 2022. 02. 25 16:48:03 Kevinke12 Útadó cpp14 Elfogadva 50/50 97ms 23696 KiB
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
#define ll long long


ll N;
ll be1, be2;
vector<ll> ellista[50005];
int fel[50005];
vector<ll> adok;

struct adat
{
    int cs;
    ll alatta=0;
    ll suly=0;
    ll felette=0;

};
bool Rend(adat a, adat b)
{
    return (a.alatta*a.felette>b.alatta*b.felette);
}
adat al[50005];

ll Mely(int cs)
{
    ll akt=1;
    for(int a:ellista[cs])
    {
        akt+=Mely(a);
    }
    al[cs].alatta=akt;
    al[cs].cs=cs;
    al[cs].felette = N-al[cs].alatta;
    return akt;
}

int main()
{
    cin >> N;
    for(int i = 0; i < N-1; i++)
    {
        cin >> be1 >> be2;
        ellista[be1].push_back(be2);
        fel[be2]=be1;
    }
    for(int i = 0; i < N-1; i++)
    {
        cin >> be1; adok.push_back(be1);
    }

    Mely(1);
    sort(al+1, al+N+1, Rend);
    sort(adok.begin(), adok.end(), greater<ll>());

    /*for(ll a:adok)
        cout << a << " ";
    cout << "\n";*/


    ll ert=0;
    for(int i = 1; i < N; i++)
    {
        al[i].suly = adok[i-1];
        ert += ((((al[i].alatta)*(N-al[i].alatta))%32609)*al[i].suly*2)%32609;
    }
    cout << ert%32609 << "\n";

    for(int i = 1; i <= N-1; i++)
    {
        cout << fel[al[i].cs] << " " << al[i].cs << " " << al[i].suly << "\n";
    }


    /*for(int i = 1; i <= N; i++)
    {
        cout << al[i].cs << ":" << al[i].alatta << " " << al[i].felette  << "=" << al[i].suly << "\n";
    }*/

    return 0;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 50/50
1 Elfogadva 0/0 4ms 7336 KiB
2 Elfogadva 0/0 39ms 9424 KiB
3 Elfogadva 2/2 4ms 7752 KiB
4 Elfogadva 2/2 3ms 7756 KiB
5 Elfogadva 2/2 3ms 7768 KiB
6 Elfogadva 2/2 4ms 7768 KiB
7 Elfogadva 2/2 4ms 7768 KiB
8 Elfogadva 8/8 97ms 18012 KiB
9 Elfogadva 2/2 4ms 8760 KiB
10 Elfogadva 2/2 4ms 8772 KiB
11 Elfogadva 2/2 4ms 8804 KiB
12 Elfogadva 2/2 4ms 8824 KiB
13 Elfogadva 2/2 4ms 8836 KiB
14 Elfogadva 2/2 92ms 12932 KiB
15 Elfogadva 2/2 89ms 14008 KiB
16 Elfogadva 2/2 93ms 15092 KiB
17 Elfogadva 2/2 90ms 16132 KiB
18 Elfogadva 2/2 90ms 17004 KiB
19 Elfogadva 2/2 92ms 18228 KiB
20 Elfogadva 2/2 92ms 19472 KiB
21 Elfogadva 2/2 94ms 20524 KiB
22 Elfogadva 2/2 94ms 21584 KiB
23 Elfogadva 2/2 93ms 22640 KiB
24 Elfogadva 2/2 97ms 23696 KiB