Pagini recente » Cod sursa (job #709404) | Cod sursa (job #339105) | Cod sursa (job #2335500) | Cod sursa (job #244213) | Cod sursa (job #2378128)
#include<bits/stdc++.h>
#define N 400010
using namespace std;
struct lol {
int x,y,c;
} M[N];
int p[200010];
bool cmp(lol l, lol r) {
return (l.c<r.c);
}
int n,m,d,rs,k;
int find(int x) {
if (x==p[x]) return x;
else return (p[x]=find(p[x]));
}
int main() {
ifstream cin("apm.in");
ofstream cout("apm.out");
cin>>n>>m;
for (int i=1; i<=m; ++i) {
int x,y,c; cin>>x>>y>>c;
M[i]={x,y,c};
} cin>>d;
sort(M+1,M+1+m,cmp);
for (int i=1; i<=n; ++i) p[i]=i;
for (int i=1; i<=m && k<n; ++i) {
int a=find(M[i].x);
int b=find(M[i].y);
if (a!=b) {
p[b]=a;
M[++k]=M[i];
rs+=M[i].c;
}
}
cout<<rs<<'\n'<<k<<'\n';
for (int i=1; i<=k; ++i) cout<<M[i].x<<" "<<M[i].y<<'\n';
return 0;
}