Submission #544951

#TimeUsernameProblemLanguageResultExecution timeMemory
544951PiejanVDCReconstruction Project (JOI22_reconstruction)C++17
7 / 100
5070 ms4256 KiB
#include <bits/stdc++.h> using namespace std; const int mxN = (int)1e5 + 5; vector<pair<int64_t,pair<int,int>>>e; vector<pair<int64_t,pair<int,int>>>v; int n,m; vector<int>parent(mxN); int UF(int u) { if(parent[u] == u) return u; return parent[u] = UF(parent[u]); } int64_t mst(int64_t X) { for(int i = 0 ; i < m ; i++) v[i].first = abs(e[i].first - X), v[i].second = e[i].second; sort(v.begin(),v.end()); int cnt = 0; int p = 0; int64_t ans = 0; vector<bool>vis(n,0); while(cnt < n-1) { int A = UF(v[p].second.first), B = UF(v[p].second.second); if(A == B) { p++; continue; } ans += v[p].first; cnt++; parent[A] = B; p++; } return ans; } void go() { for(int i = 0 ; i < n ; i++) parent[i] = i; } signed main() { cin>>n>>m; for(int i = 0 ; i < m ; i++) { int64_t a,b,c; cin>>a>>b>>c; a--,b--; e.push_back({c,{a,b}}); } v.resize(m); int q; cin>>q; while(q--) { int64_t X; cin>>X; go(); cout << mst(X) << "\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...