Cod sursa(job #1494158)

Utilizator NightSilentIridon Stefan NightSilent Data 30 septembrie 2015 19:26:28
Problema Arbore partial de cost minim Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 1.09 kb
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("apm.in");
ofstream g("apm.out");
struct muchie
{
    int x,y;
    float c;
};
muchie u[400001],af[400001];
int l[200001],m,n;
long ct;
int comp(muchie a,muchie b)
{
    return (a.c<b.c);
}
int main()
{
    int i,k,w,v,j,nr=0;
    f>>n>>m;
    for (i=1;i<=m;i++)
        f>>u[i].x>>u[i].y>>u[i].c;
    sort (u+1,u+m+1,comp);
    for (i=1;i<=n;i++)
        l[i]=i;
    i=1;
    k=0;
    while (k<n-1)
        {
            if (l[u[i].x]!=l[u[i].y])
                {
                    nr++;
                    af[nr].x=u[i].x;
                    af[nr].y=u[i].y;
                    k++;
                    ct+=u[i].c;
                    w=l[u[i].x];
                    v=l[u[i].y];
                    for (j=1;j<=n;j++)
                        if (l[j]==v)
                            l[j]=w;


                }
            i++;
        }
    g<<ct<<'\n';
    g<<nr<<'\n';
    for (i=1;i<=nr;i++)
        g<<af[i].x<<" "<<af[i].y<<'\n';


    return 0;
}