Cod sursa(job #2867500)

Utilizator LuntraruAlexandraLuntraru Maria Alexandra LuntraruAlexandra Data 10 martie 2022 13:26:52
Problema Arbore partial de cost minim Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.86 kb
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f ("apm.in");
ofstream g ("apm.out");
int cost,P[200001],k,n,m;
struct muchie
{
    int x,y,c;
};
muchie u[200001],sol[200001];
bool comp(muchie a,muchie b)
{
    return a.c<b.c;
}
int main()
{
    f>>n>>m;
    for(int i=1;i<=m;i++)
    {
        f>>u[i].x>>u[i].y>>u[i].c;
        P[i]=i;
    }
    sort(u+1,u+n+1,comp);
    int i=1;
    while(k<n-1)
    {
        if(P[u[i].x]!=P[u[i].y])
        {
            ++k;
            sol[k]=u[i];
            cost=cost+u[i].c;
            int nr1=P[u[i].x], nr2=P[u[i].y];
            for(int j=1;j<=n;j++)
                if(P[j]==nr2)
                P[j]=nr1;
        }
        ++i;
    }
    g<<cost<<"\n"<<k<<"\n";
    for(int i=1;i<=k;i++)
        g<<sol[i].x<<" "<<sol[i].y<<"\n";
    return 0;
}