Cod sursa(job #2170985)

Utilizator RaKaRe99Lodina Razan RaKaRe99 Data 15 martie 2018 10:42:41
Problema Arbore partial de cost minim Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 1.19 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream f("apm.in");
ofstream g("apm.out");

struct Nod
{

    int x,y,c;

} v[400000],sch,v1[400000];

int main()
{

    int n,m,i,j,l[200001],ct,k,nr1,nr2,aux,idx=0;
    f >> n >> m;
    for(i=0; i<m; i++)
    {
        f >> v[i].x >> v[i].y >> v[i].c;
    }

    for(i=0; i<m-1; i++)
    {
        for(j=i+1; j<m; j++)
        {
            if(v[i].c>v[j].c)
            {
                sch=v[i];
                v[i]=v[j];
                v[j]=sch;
            }
        }
    }

    for(int i=1; i<=n; i++)
        l[i]=i;

    k=0;
    ct=0;
    aux=0;

    while(k<n-1)
    {

        if(l[v[aux].x]!=l[v[aux].y])
        {
            k++;
            //cout<<v[aux].x<<" "<<v[aux].y<<endl;
           v1[idx]=v[aux];
            idx=idx+1;
            ct=ct+v[aux].c;
            nr1=v[aux].x;
            nr2=v[aux].y;
            for(j=1; j<=n; j++)
                if(l[j]==nr2)
                    l[j]=nr1;

        }
        aux++;


    }
    g<<ct<<endl;
    g<<idx<<endl;
    for(i=0;i<idx;i++)
        g<<v1[i].x<<" "<<v1[i].y<<endl;






    return 0;
}