Submission #1000493

#TimeUsernameProblemLanguageResultExecution timeMemory
1000493De3b0oReconstruction Project (JOI22_reconstruction)C++14
7 / 100
5086 ms10772 KiB
#include<bits/stdc++.h> #define ll long long #define F first #define S second #define in insert #define pb push_back #define ppb pop_back() #define d3 ios::sync_with_stdio(0);cin.tie(0);cout.tie(0); #define cans cout << ans << "\n"; #define yes cout << "Yes" << "\n"; #define no cout << "No" << "\n"; #define pll pair<ll,ll> #define lin cout << "\n"; #define sqr 340 #define mod 1000000007 #define mid ((l+r)/2) #define lc (2*x) #define rc (2*x+1) using namespace std; ll n , m , q; ll dsu[509]; ll sz[509]; ll e1[100009] , e2[100009] , c[100009]; ll gp(ll u) { if(dsu[u]==u) return u; return dsu[u]=gp(dsu[u]); } void merg(ll u , ll v) { u = gp(u); v = gp(v); if(sz[v]>sz[u]) swap(u,v); sz[u]+=sz[v]; dsu[v]=u; } ll mst(ll x) { for(int i = 1 ; n>=i ; i++) { dsu[i]=i; sz[i]=1; } vector<pair<ll,pll>> v; for(int i = 0 ; m>i ; i++) v.pb({abs(c[i]-x),{e1[i],e2[i]}}); sort(v.begin(),v.end()); ll ans = 0; for(auto it : v) { if(gp(it.S.F)==gp(it.S.S)) continue; merg(it.S.F,it.S.S); ans+=it.F; } return ans; } int main() { d3 cin >> n >> m; for(int i = 0 ; m>i ; i++) { ll u , v , w; cin >> u >> v >> w; e1[i]=u; e2[i]=v; c[i]=w; } cin >> q; while(q--) { ll x; cin >> x; ll ans = mst(x); cans } }
#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...