Cod sursa(job #1956938)

Utilizator delta_wolfAndrei Stoica delta_wolf Data 7 aprilie 2017 10:21:04
Problema Arbore partial de cost minim Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.98 kb
#include <iostream>


#include<fstream>
using namespace std;

 struct muchie
{
    int e1,e2,c;
} ;
int a[30],n,m;
muchie v[30];
void citire()
{
    int i;
    ifstream f("apm.txt");
    f>>n;
    f>>m;
    for(i=1; i<=m; i++)
        f>>v[i].e1>>v[i].e2>>v[i].c;
    f.close();
}

int main()
{
    int k,ultim,i,u,v1,ct,ind,ms,lu,lv,j;

    citire();
    for(i=1; i<=n; i++)
        a[i]=i;
   for(i=1; i<m; i++)
    for(j=i+1;j<=m;j++)
               if (v[i].c>v[j].c)
           swap(v[i],v[j]);
    cout<<"APM contine muchiile:"<<endl;
    ct=0;
    ms=0;
    ind=0;
    while(ms<n-1)
    {
        do
            ind++;
        while(a[v[ind].e1]==a[v[ind].e2]);
        u=v[ind].e1;
        lu=a[u];
        v1=v[ind].e2;
        lv=a[v1];
        cout<<u<<"  "<<v1<<endl;
        ct=ct+v[ind].c;
        ms++;
        for(i=1; i<=n; i++)
            if(a[i]==lu)
                a[i]=lv;
    }
    cout<<"costul APM este:"<<ct;

    }