Pagini recente » Cod sursa (job #1977016) | Cod sursa (job #1354649) | Cod sursa (job #23978) | Cod sursa (job #2348143) | Cod sursa (job #2425034)
//#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
ifstream cin("apm.in");
ofstream cout("apm.out");
struct adat
{
int a,b,c;
};
vector <adat> x;
vector <int> y;
vector <adat> z;
int i,n,m,a,b,c,db=0,s=0,p,q;
int has(adat a,adat b)
{
if(a.c>b.c) return 0;
else return 1;
}
int main()
{
cin>>n>>m;
// x.resize(m+1);
y.resize(n+1);
for(i=0;i<m;++i)
{
cin>>a>>b>>c;
x.push_back({a,b,c});
}
sort(x.begin(),x.end(),has);
// for(auto &e:x)
// cout<<e.a<<" "<<e.b<<" "<<e.c<<"\n";
for(i=1;i<=n;++i)
y[i]=i;
for(auto &e:x)
{
a=e.a;
b=e.b;
c=e.c;
p=y[a];
q=y[b];
if(p!=q)
{
z.push_back({a,b,0});
s+=c;
for(i=1;i<=n;++i)
if(y[i]==p) y[i]=q;
db++;
if(db==n-1) break;
}
}
cout<<s<<"\n";
cout<<z.size()<<"\n";
for(auto &e:z)
cout<<e.a<<" "<<e.b<<"\n";
return 0;
}