#include<bits/stdc++.h>
using namespace std;
class pont{
public:
vector<int> hova;
long long meret=0;
int dfs();
};
class edge{
public:
int a, b;
long long meret=0;
int resi;
};
vector<pont> p;
vector<edge> e;
int n;
int pont::dfs(){
if(!meret){
meret = 1;
for(int i : hova){
meret+=p[i].dfs();
}
return meret;
}
return 0;
}
bool cmp1(const edge& e1, const edge& e2){
return e1.meret < e2.meret;
}
int main(){
cin >> n;
//cout << n << "=N\n";
p.resize(n);
e.resize(n-1);
//cout << n << "=N\n";
for(int i=0;i<n-1;i++){
cin >> e[i].a >> e[i].b;
--e[i].a; --e[i].b;
p[e[i].a].hova.push_back(e[i].b);
p[e[i].b].hova.push_back(e[i].a);
}
//cout << n << "=N\n";
p[0].dfs();
//cout << n << "=N\n";
for(int i=0;i<n-1;i++){
e[i].meret = min(p[e[i].a].meret,p[e[i].b].meret)*
(n-(min(p[e[i].a].meret,p[e[i].b].meret)));
}
//cout << n << "=N\n";
vector<int> v(n-1);
for(int i=0;i<n-1;i++){
cin >> v[i];
}
sort(v.begin(), v.end());
sort(e.begin(), e.end(), cmp1);
long long er = 0;
for(int i=0;i<n-1;i++){
e[i].resi = v[i];
er+=e[i].meret%32609*e[i].resi;
er%=32609;
}
cout << er*2%32609 << '\n';
for(int i=0;i<n-1;i++){
cout << e[i].a+1 << ' ' << e[i].b+1 << ' ' << e[i].resi << '\n';
}
return 0;
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
base | 50/50 | ||||||
1 | Elfogadva | 0/0 | 2ms | 1752 KiB | |||
2 | Elfogadva | 0/0 | 39ms | 5680 KiB | |||
3 | Elfogadva | 2/2 | 1ms | 2260 KiB | |||
4 | Elfogadva | 2/2 | 1ms | 2264 KiB | |||
5 | Elfogadva | 2/2 | 1ms | 2272 KiB | |||
6 | Elfogadva | 2/2 | 1ms | 2280 KiB | |||
7 | Elfogadva | 2/2 | 1ms | 2284 KiB | |||
8 | Elfogadva | 8/8 | 114ms | 16908 KiB | |||
9 | Elfogadva | 2/2 | 4ms | 3412 KiB | |||
10 | Elfogadva | 2/2 | 3ms | 3436 KiB | |||
11 | Elfogadva | 2/2 | 3ms | 3452 KiB | |||
12 | Elfogadva | 2/2 | 3ms | 3600 KiB | |||
13 | Elfogadva | 2/2 | 3ms | 3492 KiB | |||
14 | Elfogadva | 2/2 | 104ms | 13288 KiB | |||
15 | Elfogadva | 2/2 | 97ms | 14328 KiB | |||
16 | Elfogadva | 2/2 | 97ms | 15380 KiB | |||
17 | Elfogadva | 2/2 | 115ms | 16448 KiB | |||
18 | Elfogadva | 2/2 | 96ms | 17464 KiB | |||
19 | Elfogadva | 2/2 | 108ms | 18508 KiB | |||
20 | Elfogadva | 2/2 | 108ms | 19548 KiB | |||
21 | Elfogadva | 2/2 | 104ms | 20532 KiB | |||
22 | Elfogadva | 2/2 | 101ms | 21592 KiB | |||
23 | Elfogadva | 2/2 | 104ms | 22640 KiB | |||
24 | Elfogadva | 2/2 | 101ms | 23692 KiB |