#include <bits/stdc++.h>
using ll = long long;
using namespace std;
const int MAXN = 50'001;
const int MOD = 32609;
struct Edge {
ll w, u, v;
Edge(int a, int b, int c) : w(a), u(b), v(c) {}
};
vector<int> g[MAXN];
ll s[MAXN], p[MAXN];
void dfs(int u) {
s[u] = 1;
for (int v : g[u]) {
if (p[u] != v) {
p[v] = u;
dfs(v);
s[u] += s[v];
}
}
}
void solve() {
int n; cin >> n;
for (int i = 0; i < n-1; i++) {
int u, v; cin >> u >> v;
g[u].emplace_back(v);
g[v].emplace_back(u);
}
vector<ll> cost(n-1);
for (ll &i : cost) cin >> i;
dfs(1);
vector<Edge> edges;
for (int i = 2; i <= n; i++) {
edges.emplace_back(s[i]*(n-s[i]), i, p[i]);
}
sort(cost.begin(), cost.end());
sort(edges.begin(), edges.end(), [](const Edge &a, const Edge &b){
return a.w < b.w;
});
ll ans = 0;
for (int i = 0; i < n-1; i++) {
ans += 2ll*edges[i].w*cost[i];
ans %= MOD;
}
cout << ans << "\n";
for (int i = 0; i < n-1; i++) {
cout << edges[i].u << " " << edges[i].v << " " << cost[i] << "\n";
}
}
int main() {
ios_base::sync_with_stdio(0); cin.tie(0);
int t = 1;
// cin >> t;
while (t--) {
solve();
}
return 0;
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
base | 50/50 | ||||||
1 | Elfogadva | 0/0 | 4ms | 4292 KiB | |||
2 | Elfogadva | 0/0 | 24ms | 8492 KiB | |||
3 | Elfogadva | 2/2 | 4ms | 4764 KiB | |||
4 | Elfogadva | 2/2 | 4ms | 4960 KiB | |||
5 | Elfogadva | 2/2 | 4ms | 5264 KiB | |||
6 | Elfogadva | 2/2 | 4ms | 5384 KiB | |||
7 | Elfogadva | 2/2 | 4ms | 5464 KiB | |||
8 | Elfogadva | 8/8 | 54ms | 20584 KiB | |||
9 | Elfogadva | 2/2 | 4ms | 5840 KiB | |||
10 | Elfogadva | 2/2 | 4ms | 5844 KiB | |||
11 | Elfogadva | 2/2 | 4ms | 6028 KiB | |||
12 | Elfogadva | 2/2 | 4ms | 6220 KiB | |||
13 | Elfogadva | 2/2 | 4ms | 6292 KiB | |||
14 | Elfogadva | 2/2 | 54ms | 14684 KiB | |||
15 | Elfogadva | 2/2 | 54ms | 14688 KiB | |||
16 | Elfogadva | 2/2 | 52ms | 14688 KiB | |||
17 | Elfogadva | 2/2 | 52ms | 14684 KiB | |||
18 | Elfogadva | 2/2 | 54ms | 14688 KiB | |||
19 | Elfogadva | 2/2 | 54ms | 14684 KiB | |||
20 | Elfogadva | 2/2 | 57ms | 14716 KiB | |||
21 | Elfogadva | 2/2 | 54ms | 14684 KiB | |||
22 | Elfogadva | 2/2 | 56ms | 14836 KiB | |||
23 | Elfogadva | 2/2 | 54ms | 14964 KiB | |||
24 | Elfogadva | 2/2 | 56ms | 15052 KiB |