Submission #1205180

#TimeUsernameProblemLanguageResultExecution timeMemory
1205180abczzReconstruction Project (JOI22_reconstruction)C++20
3 / 100
48 ms3516 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...