Cod sursa(job #1691975)

Utilizator GeanaVladGeana Vlad GeanaVlad Data 19 aprilie 2016 22:03:30
Problema Arbore partial de cost minim Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <iostream>
#include<algorithm>
#include<fstream>
using namespace std;
ifstream f("apm.in");
ofstream g("apm.out");
int n,m1,M,i,nod[200000],ct,k;
struct muchie
{
    int x,y,cst;
};
muchie m[400000],v[400000];
bool comp(muchie a,muchie b)
{
    return a.cst<=b.cst;
}
int main()
{
    f>>n>>M;
    for(i=1;i<=M;i++)
    {
        f>>m[i].x>>m[i].y>>m[i].cst;
    }
    sort(m+1,m+M+1,comp);
    k=0;
    for(i=1;i<=n;i++) nod[i]=i;
    for(i=1;i<=M;i++)
    {
        if(nod[m[i].x]!=nod[m[i].y])
        {
            ct+=m[i].cst;
            k++;
            v[k]=m[i];
            nod[m[i].x]=nod[m[i].y]=-1;
        }
    }
    g<<ct<<endl<<k<<endl;
    for(i=1;i<=k;i++) g<<v[i].x<<' '<<v[i].y<<endl;
    //for(i=1;i<=n;i++) cout<<nod[i]<<' ';

}