Cod sursa(job #2972591)

Utilizator pifaDumitru Andrei Denis pifa Data 29 ianuarie 2023 19:35:43
Problema Lazy Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.04 kb
#include <bits/stdc++.h>

using namespace std;

ifstream in("lazy.in");
ofstream out("lazy.out");

const int N = 2e5;

vector <int> g[N + 1];

int n, m;

struct muchie
{
    int x, y, cost1, cost2, viz;
};

muchie v[N + 1];

int sef[N + 1];

int find(int nod)
{
    if(nod == sef[nod])
        return nod;
    return sef[nod] == find(sef[nod]);
}

int cmp(muchie a, muchie b)
{
    return a.cost1 < b.cost1;
}

signed main()
{
    in >> n >> m;
    for(int i = 1; i <= n; i++)
        sef[i] = i;
    map <pair <int, int>, int> mp;
    for(int i = 1; i <= m; i++)
    {
        in >> v[i].x >> v[i].y >> v[i].cost1 >> v[i].cost2;
        mp[{v[i].x, v[i].y}] = i;
    }
    sort(v + 1, v + m + 1, cmp);
    for(int i = 1; i <= m; i++)
    {
        int a = find(v[i].x), b = find(v[i].y);
        if(a != b)
        {
            sef[b] = a;
            v[i].viz = 1;
        }
    }
    for(int i = 1; i <= m; i++)
        if(v[i].viz == 1)
          out << mp[{v[i].x, v[i].y}] << '\n';
    return 0;
}