Pagini recente » Cod sursa (job #2193651) | Cod sursa (job #474858) | Cod sursa (job #1299088) | Atasamentele paginii concurs_de_birou | Cod sursa (job #1805214)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("apm.in");
ofstream g("apm.out");
struct muchie
{
int inc,sf,cost;
};
int n,m;
muchie v[200003];
int graf[200003];
int e[200003];
bool cmp(muchie a,muchie b)
{
if(a.cost>b.cost)
{
return 0;
}
return 1;
}
int main()
{
int k,i,t=0,x,y,j,p;
f>>n;
f>>m;
for(i=1;i<=m;i++)
f>>v[i].inc>>v[i].sf>>v[i].cost;
sort(v+1,v+m+1,cmp);
k=0;
i=1;
for(i=1;i<=n;i++)
graf[i]=i;
i=1;
while(k<n-1)
{
x=v[i].inc;
y=v[i].sf;
if(graf[x]!=graf[y])
{
t+=v[i].cost;
k+=1;
e[k]=i;
p=graf[x];
for(j=1;j<=n;j++)
{
if(graf[j]==p)
graf[j]=graf[y];
}
}
i+=1;
}
g<<t<<'\n'<<n-1<<'\n';
i=1;
while(i<n)
{
g<<v[e[i]].inc<<" "<<v[e[i]].sf<<'\n';
i+=1;
}
return 0;
}