#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 |