Submission #1141649

#TimeUsernameProblemLanguageResultExecution timeMemory
1141649erering시간이 돈 (balkan11_timeismoney)C++20
45 / 100
5 ms584 KiB
#include <bits/stdc++.h> using namespace std; #define int long long #define endl '\n' #define pb push_back const int N=201; struct info{ int u,v,t,c; friend bool operator< (info a, info b) { return a.t<b.t; } }; int par[N],sz[N]; int find(int x){ return par[x]=(x==par[x]?x:find(par[x])); } void merge(int a,int b){ a=find(a); b=find(b); if(a==b)return; if(sz[a]>sz[b])swap(a,b); par[a]=b; sz[b]+=sz[a]; } signed main(){ int n,m; cin>>n>>m; info a[m]; for(int i=0;i<m;i++){ cin>>a[i].u>>a[i].v>>a[i].t>>a[i].c; par[a[i].u]=a[i].u; par[a[i].v]=a[i].v; sz[a[i].u]=1; sz[a[i].v]=1; } sort(a,a+m); int ans=0,ans2=0,ans3=0; vector<pair<int,int>> vec; for(int i=0;i<m;i++){ if(find(a[i].u)==find(a[i].v))continue; ans2+=a[i].t; ans3+=a[i].c; ans+=a[i].t; merge(a[i].u,a[i].v); vec.pb({a[i].u,a[i].v}); } cout<<ans2<<' '<<ans3<<endl; for(auto i:vec)cout<<i.first<<' '<<i.second<<endl; }
#Verdict Execution timeMemoryGrader output
Fetching results...