Pagini recente » Cod sursa (job #487784) | Cod sursa (job #2019088) | Rating Varzaru Eugen (V_Eugen) | Cod sursa (job #2741891) | Cod sursa (job #1582368)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("apm.in");
ofstream g("apm.out");
struct graf
{
int x,y;
long cost;
}v[151],aux;
int c[151],ct;
int a[151][2],k;
int main()
{
int p,n,m,i,j,nr=0;
f>>n>>m;
for(i=1;i<=m;i++) f >> v[i].x >> v[i].y >> v[i].cost;
for(i=1;i<=n;i++) c[i] = i;
for(i=1;i<m;i++)
for(j=i+1;j<=m;j++)
if(v[i].cost > v[j].cost)
{
aux = v[i];
v[i] = v[j];
v[j] = aux;
}
i = 1;
while(nr < n-1)
{
if(c[v[i].x] != c[v[i].y])
{
nr++;
a[nr][0] = v[i].x;
a[nr][1] = v[i].y;
ct += v[i].cost;
p = c[v[i].y];
for(j=1;j<=n;j++)
{
if(c[j] == p) c[j] = c[v[i].x];
}
}
i++;
}
g << ct << endl;
for(i=1; i<=nr;i++)
g << a[i][0] << " " << a[i][1] << endl;
}