Pagini recente » Cod sursa (job #164530) | sa_fac_schema | Cod sursa (job #3281491) | Cod sursa (job #567079) | Cod sursa (job #2847543)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("apm.in");
ofstream g("apm.out");
struct muchie{
int x,y,cost;
}v[400005],sol[400005];
int T[200005];
int n,m,contor,Suma,nr1,nr2;
int multimi(int x)
{
if(T[x]!=x)
T[x]=multimi(T[x]);
return T[x];
}
int compare(muchie a,muchie b){
return a.cost<b.cost;
}
int main()
{
f>>n>>m;
for(int i=1;i<=m;i++)
f>>v[i].x>>v[i].y>>v[i].cost;
sort(v+1,v+m+1,compare);
for(int i=1;i<=n;++i)
T[i]=i;
for(int i=1;i<=m;i++)
{
nr1=multimi(v[i].x);
nr2=multimi(v[i].y);
if(nr1!=nr2){
T[nr1]=nr2;
Suma+=v[i].cost;
sol[++contor]=v[i];
}
}
g<<Suma<<'\n'<<contor<<'\n';
for(int i=1;i<=contor;i++)
g<<sol[i].x<<" "<<sol[i].y<<'\n';
return 0;
}