Cod sursa(job #1582368)

Utilizator Cezar98Alexandru Cezar Cezar98 Data 27 ianuarie 2016 21:00:33
Problema Arbore partial de cost minim Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#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;
}