Pagini recente » Cod sursa (job #2183884) | Cod sursa (job #1395019) | Cod sursa (job #1656126) | Cod sursa (job #586205) | Cod sursa (job #2568599)
#include<iostream>
#include<fstream>
#include<algorithm>
using namespace std;
ifstream fin("apm.in");
ofstream fout("apm.out");
#define nrm 200005
struct muchie
{
int i,j,cost;
};
muchie x[nrm];
int n,m,t[nrm];
pair<int,int>v[nrm];
int comp(muchie x,muchie y)
{
return x.cost<y.cost;
}
int main ()
{
fin>>n>>m;
for(int i=1;i<=m;i++)
{
fin>>x[i].i>>x[i].j>>x[i].cost;
}
sort(x+1,x+m+1,comp);
for(int i=1;i<=n;i++)
{
t[i]=i;
}
int s=0,cnt=0;
for(int k=1;k<=m && cnt<n;k++)
{
if(t[x[k].i]!= t[x[k].j])
{
s=s+x[k].cost;
int ai=t[x[k].i];
int aj=t[x[k].j];
for(int j=1;j<=n;++j)
{
if(t[j]==aj)
{
t[j]=ai;
}
}
cnt++;
v[cnt].first=x[k].i;
v[cnt].second=x[k].j;
}
}
fout<<s<<'\n'<<n-1<<'\n';
for(int i=1;i<=n-1;i++)
{
fout<<v[i].first<<" "<<v[i].second;
fout<<'\n';
}
return 0;
}