Cod sursa(job #2948599)

Utilizator KataIsache Catalina Kata Data 27 noiembrie 2022 21:38:27
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.61 kb


#define N 100004
#include <bits/stdc++.h>
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
int x[N],y[N],q[N],G[N],ind[N];

int grupa(int i);
int main()
{
    int n,m,i,cost=0;
    fin>>n>>m;
    for(i=1;i<=n;i++) G[i]=i;
    for(i=1;i<=m;i++)
        fin>>q[i]>>x[i]>>y[i];
    for(i=1;i<=m;i++)
        if (q[i]==1)
            G[grupa(x[i])]=grupa(y[i]);
        else if ( grupa(x[i])== grupa( y[i]))
            fout<<"DA"<<'\n';
        else
            fout<<"NU"<<'\n';

    return 0;
}

int grupa(int i)
{
    if (G[i]==i)
        return i;
    G[i]=grupa(G[i]);
    return G[i];
}