Cod sursa(job #2310171)

Utilizator RaresIonitaUvtFMIRares Ionita UVT FMI RaresIonitaUvtFMI Data 30 decembrie 2018 18:16:19
Problema Arbore partial de cost minim Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.05 kb
#include<iostream>
#include<fstream>
using namespace std;

ifstream fin("apm.in");
ofstream fout("apm.out");

struct muchie
{
    int x,y;
    float cost;
} b[30],aux;
int n,m,i,k,cst,l[30],j;
int main()
{
    fin>>n>>m;

    for(i=1;i<=m;i++)
    {
        fin>>b[i].x>>b[i].y>>b[i].cost;
    }

    for(i=1;i<=n;i++)
    {
        l[i]=i;
    }
    // ordonarea muchiilor dupa cost
    for(i=1;i<m;i++)
    {
        for(j=i+1;j<=m;j++)
        {
            if(b[i].cost>b[j].cost)
            {
                aux=b[i];
                b[i]=b[j];
                b[j]=aux;
            }
        }
    }

    k=0; // nr. de muchii selectate
    cst=0; // costul total
    i=1;
    while(k<n-1)
    {
        if(l[b[i].x]!=l[b[i].y])
        {
            k++;
            cst+=b[i].cost;
            for(j=1;j<=n;j++)
                if(l[j]==l[b[i].x])
                    l[j]=l[b[i].y];
                    fout<<b[i].x<<" "<<b[i].y<<endl;
        }
        i++;
    }
    fout<<cst<<endl;


 return 0;
}