#include <bits/stdc++.h>
using namespace std;
#define int long long
#define double long double
using pii = pair<int, int>;
template <typename T>
using prior = priority_queue<T, vector<T>, greater<T>>;
template <typename T>
using Prior = priority_queue<T>;
#define X first
#define Y second
#define ALL(x) (x).begin(), (x).end()
#define eb emplace_back
#define fastIO() ios_base::sync_with_stdio(0), cin.tie(0)
const int maxn = 1E5 + 5;
int ans = 0;
vector<int> adj[maxn], val(maxn), deg(maxn), vis(maxn), p(maxn), maxV(maxn);
int R(int x) {return x ^ p[x] ? p[x] = R(p[x]) : x;}
void U(int x, int y) {x = R(x), y = R(y); maxV[y] = max(maxV[y], maxV[x]), p[x] = y;}
int32_t main() {
fastIO();
int n;
cin >> n, iota(ALL(p), 0);
vector<pii> pq;
for (int i = 1; i <= n; ++i) cin >> val[i], maxV[i] = val[i], pq.eb(val[i], i);
for (int i = 1; i < n; ++i) {
int u, v; cin >> u >> v;
adj[u].eb(v), adj[v].eb(u), ++deg[u], ++deg[v];
}
sort(ALL(pq), [](auto p1, auto p2) {return p1.X > p2.X;});
for (int i = 0; i < n; ++i) {
int id = pq[i].Y;
ans += deg[id] * val[id];
for (auto x : adj[id]) --deg[x];
}
// cout << ans << "\n";
for (int i = n-1; i >= 0; --i) {
int id = pq[i].Y; vis[id] = 1;
for (auto x : adj[id]) {
if (i != n-1 and vis[x]) ans += maxV[R(x)];
if (vis[x]) U(id, x);
}
}
cout << ans << "\n";
return 0;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
5 ms |
6604 KB |
Output is correct |
2 |
Correct |
4 ms |
6604 KB |
Output is correct |
3 |
Correct |
5 ms |
6476 KB |
Output is correct |
4 |
Correct |
6 ms |
6604 KB |
Output is correct |
5 |
Correct |
6 ms |
6592 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
94 ms |
12088 KB |
Output is correct |
2 |
Correct |
54 ms |
10704 KB |
Output is correct |
3 |
Correct |
46 ms |
10556 KB |
Output is correct |
4 |
Correct |
54 ms |
11100 KB |
Output is correct |
5 |
Correct |
89 ms |
13408 KB |
Output is correct |
6 |
Correct |
55 ms |
13348 KB |
Output is correct |
7 |
Correct |
53 ms |
12428 KB |
Output is correct |
8 |
Correct |
43 ms |
11828 KB |
Output is correct |
9 |
Correct |
32 ms |
10024 KB |
Output is correct |
10 |
Correct |
61 ms |
13372 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
5 ms |
6604 KB |
Output is correct |
2 |
Correct |
4 ms |
6604 KB |
Output is correct |
3 |
Correct |
5 ms |
6476 KB |
Output is correct |
4 |
Correct |
6 ms |
6604 KB |
Output is correct |
5 |
Correct |
6 ms |
6592 KB |
Output is correct |
6 |
Correct |
6 ms |
6628 KB |
Output is correct |
7 |
Correct |
5 ms |
6620 KB |
Output is correct |
8 |
Correct |
4 ms |
6536 KB |
Output is correct |
9 |
Correct |
5 ms |
6604 KB |
Output is correct |
10 |
Correct |
5 ms |
6604 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
5 ms |
6604 KB |
Output is correct |
2 |
Correct |
4 ms |
6604 KB |
Output is correct |
3 |
Correct |
5 ms |
6476 KB |
Output is correct |
4 |
Correct |
6 ms |
6604 KB |
Output is correct |
5 |
Correct |
6 ms |
6592 KB |
Output is correct |
6 |
Correct |
94 ms |
12088 KB |
Output is correct |
7 |
Correct |
54 ms |
10704 KB |
Output is correct |
8 |
Correct |
46 ms |
10556 KB |
Output is correct |
9 |
Correct |
54 ms |
11100 KB |
Output is correct |
10 |
Correct |
89 ms |
13408 KB |
Output is correct |
11 |
Correct |
55 ms |
13348 KB |
Output is correct |
12 |
Correct |
53 ms |
12428 KB |
Output is correct |
13 |
Correct |
43 ms |
11828 KB |
Output is correct |
14 |
Correct |
32 ms |
10024 KB |
Output is correct |
15 |
Correct |
61 ms |
13372 KB |
Output is correct |
16 |
Correct |
6 ms |
6628 KB |
Output is correct |
17 |
Correct |
5 ms |
6620 KB |
Output is correct |
18 |
Correct |
4 ms |
6536 KB |
Output is correct |
19 |
Correct |
5 ms |
6604 KB |
Output is correct |
20 |
Correct |
5 ms |
6604 KB |
Output is correct |
21 |
Correct |
22 ms |
8268 KB |
Output is correct |
22 |
Correct |
18 ms |
7924 KB |
Output is correct |
23 |
Correct |
98 ms |
13604 KB |
Output is correct |
24 |
Correct |
89 ms |
11492 KB |
Output is correct |
25 |
Correct |
60 ms |
11500 KB |
Output is correct |
26 |
Correct |
48 ms |
9796 KB |
Output is correct |
27 |
Correct |
61 ms |
10436 KB |
Output is correct |
28 |
Correct |
82 ms |
11452 KB |
Output is correct |
29 |
Correct |
45 ms |
9980 KB |
Output is correct |
30 |
Correct |
115 ms |
13980 KB |
Output is correct |