Cod sursa(job #3164104)

Utilizator victorstefan28Cucu Victor Stefan victorstefan28 Data 2 noiembrie 2023 09:18:52
Problema Arbore partial de cost minim Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.97 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("../apm.in");
ofstream out("../apm.out");

struct muchie
{
    int cost,i,j;
    bool folosit;
};
muchie x[200005], aux;
int main()
{
    int n, m, a[101] = {}, cst = 0;
    in>>n>>m;

    for(int i = 1; i<=m; i++)
    {
        in>>x[i].i>>x[i].j>>x[i].cost;
        x[i].folosit = false;
    }
    for(int i = 1; i<m; i++)
        for(int j = i+1; j<=m; j++)
            if(x[i].cost > x[j].cost)
                aux = x[i], x[i] = x[j], x[j] = aux;
    for(int i = 1; i<=n; i++)
        a[i] = i;
    for(int i = 1; i<=m; i++)
        if(a[x[i].i] != a[x[i].j])
        {
            cst+=x[i].cost;
            x[i].folosit = true;
            int arbi = a[x[i].i], arbj = a[x[i].j];
            for(int j = 1; j<=n; j++)
                if(a[j] == arbi)
                    a[j] = arbj;
        }
    out<<cst<<'\n';
    for(int i = 1; i<=m; i++)
        if(x[i].folosit)
            out<<x[i].i<<' '<<x[i].j<<'\n';


}