#include <iostream>
#include <array>
#include <algorithm>
#include <queue>
#define ll long long
using namespace std;
ll n, m, a, b, c, P[250];
priority_queue <array<ll, 2>, vector<array<ll, 2>>, greater<array<ll, 2>>> pq;
vector <array<ll, 3>> E;
ll dsu(ll u) {
if (P[u] == u) return u;
else return P[u] = dsu(P[u]);
}
int main() {
cin >> n >> m;
for (int i=0; i<m; ++i) {
cin >> a >> b >> c;
--a, --b;
E.push_back({a, b, c});
}
ll q;
cin >> q;
while (q--) {
cin >> a;
ll f = 0;
for (int i=0; i<n; ++i) P[i] = i;
for (int i=0; i<m; ++i) {
pq.push({abs(E[i][2]-a), i});
}
while (!pq.empty()) {
auto [w, id] = pq.top();
pq.pop();
a = E[id][0], b = E[id][1];
a = dsu(a), b = dsu(b);
if (a != b) {
P[a] = b;
f += w;
}
}
cout << f << '\n';
}
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |