Pagini recente » Cod sursa (job #1499463) | Cod sursa (job #2925327) | Cod sursa (job #348187) | Cod sursa (job #1158695) | Cod sursa (job #3122706)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("apm.in");
ofstream fout("apm.out");
#define cin fin
#define cout fout
int b[1000000], n,m,k=0;
struct edge{int v; int u;int d;} L[1000000],T[1000000],tmp;
void sort()
{
for(int i=1;i<m;i++)
for(int j=1;j<m;j++)
if(L[j].d>L[j+1].d)
{
tmp=L[j]; L[j]=L[j+1]; L[j+1]=tmp;}
}
void readdata()
{
cin>>n>>m;
for(int i=1;i<=m;i++)
{
cin>>L[i].v>>L[i].u>>L[i].d;
}
}
void printsol()
{ int sum=0;
for(int i=1;i<=k;i++)
sum+=T[i].d;
cout<<sum<<"\n";
cout<<k<<"\n";
for(int i=1;i<=k;i++)
cout<<T[i].v<<" "<<T[i].u<<"\n";
}
int main()
{
int x,y,q,z;
readdata();
sort();
for(int i=1;i<=m;i++) b[i]=i;
for(int i=1;i<=m;i++)
{
x=L[i].v; y=L[i].u;
z=b[x]; q=b[y];
if(z!=q)
{
k++;
T[k]=L[i];
for (int j = 1;j<=n; j++)
{
if(b[j]==q) b[j]=z;
}
}
}
printsol();
return 0;
}