Submission #1158065

#TimeUsernameProblemLanguageResultExecution timeMemory
1158065domblyReconstruction Project (JOI22_reconstruction)C++20
7 / 100
5093 ms8224 KiB
#include <bits/stdc++.h> #define F first #define S second #define pb push_back #define int long long using namespace std; const int N = 1e5 + 10; const int inf = 1e8; struct DSU { vector<int>par; void init(int n) { par.resize(n + 10); for(int i = 1; i <= n; i++) par[i] = i; } int get(int x) { return (x == par[x] ? x : par[x] = get(par[x])); } void unite(int u,int v) { u = get(u); v = get(v); if(u == v) return; par[u] = v; } }; signed main() { ios_base::sync_with_stdio(false); cin.tie(NULL); int n,m; cin >> n >> m; vector<array<int,3>>e(m + 1); for(int i = 1; i <= m; i++) cin >> e[i][0] >> e[i][1] >> e[i][2]; int q; cin >> q; while(q--) { int x; cin >> x; vector<array<int,3>>f; for(int i = 1; i <= m; i++) f.pb({abs(x - e[i][2]),e[i][0],e[i][1]}); sort(f.begin(),f.end()); DSU dsu; dsu.init(n); int ans = 0; for(auto [w,u,v] : f) { if(dsu.get(u) != dsu.get(v)) { ans += w; dsu.unite(u,v); } } cout << ans << "\n"; } return 0; }
#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...