Pagini recente » Cod sursa (job #1993660) | Cod sursa (job #2732860) | Cod sursa (job #1832778) | Cod sursa (job #2104075) | Cod sursa (job #950889)
Cod sursa(job #950889)
#include<fstream>
#include<algorithm>
using namespace std;
ifstream f("apm.in");
ofstream g("apm.out");
int i,n,m,k,s,t[200100];
struct muchie{int x,y,c;};
muchie v[400100],sol[200100];
inline bool cmp(muchie a,muchie b)
{
return a.c<b.c;
}
inline int tata(int x)
{
if(t[x]==x)
return x;
return t[x]=tata(t[x]);
}
int main()
{
f>>n>>m;
for(i=1;i<=m;++i)
{
f>>v[i].x>>v[i].y>>v[i].c;
}
for(i=1;i<=n;++i)
t[i]=i;
sort(v+1,v+m+1,cmp);
for(i=1;i<=m;++i)
if(tata(v[i].x)!=tata(v[i].y))
{
t[t[v[i].x]]=t[v[i].y];
++k;
sol[k]=v[i];
s+=v[i].c;
}
g<<s<<'\n'<<n-1<<'\n';
for(i=1;i<n;++i)
g<<sol[i].y<<' '<<sol[i].x<<'\n';
return 0;
}