Cod sursa(job #3365794)

Utilizator cosmin.moiseMoise Cosmin Constantin cosmin.moise Data 24 septembrie 2026 18:19:11
Problema Arbore partial de cost minim Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.05 kb
#include <iostream>
#include <algorithm>
using namespace std;
struct Muchie 
{
    int x, y, c;
};
Muchie v[100005], sol[100005];
int cc[100005];
bool cmp(Muchie a, Muchie b) 
{
    return a.c < b.c;
}
int main() 
{
    int n, m;
    cin >> n >> m;
    for (int i = 1; i <= m; i++)
        cin >> v[i].x >> v[i].y >> v[i].c;
    sort(v + 1, v + m + 1, cmp);
    for (int i = 1; i <= n; i++)
        cc[i] = i;
    int s = 0, nr = 0;
    for (int i = 1; i <= m; i++) 
    {
        int x = v[i].x;
        int y = v[i].y;
        if (cc[x] != cc[y]) 
        {
            s += v[i].c;
            nr++;

            sol[nr] = v[i];

            int veche = cc[y];
            int noua = cc[x];

            for (int j = 1; j <= n; j++)
                if (cc[j] == veche)
                    cc[j] = noua;
            if (nr == n - 1)
                break;
        }
    }
    cout << s << '\n';
    cout << nr << '\n';
    for (int i = 1; i <= nr; i++)
        cout << sol[i].x << ' ' << sol[i].y << '\n';
    return 0;
}