Cod sursa(job #3264590)

Utilizator Horia123144Musat Horia Gabriel Horia123144 Data 22 decembrie 2024 17:19:28
Problema Paduri de multimi disjuncte Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.73 kb
#include <bits/stdc++.h>
#define nmax 100005
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
int n,m,t[nmax],task;
int get_root(int x)
{
    while(t[x])
    {
        x=t[x];
    }
    return x;
}
void join(int x ,int y)
{
    int rx=get_root(x),ry=get_root(y);
    t[rx]=ry;
}
int main()
{
    fin>>n>>m;
    while(m--)
    {
        fin>>task;
        if(task==1)
        {
            int x,y;
            fin>>x>>y;
            join(x,y);
        }
        else
        {
            int x,y;
            fin>>x>>y;
            if(get_root(x)==get_root(y))
                fout<<"DA"<<'\n';
            else
                fout<<"NU\n";
        }
    }
    return 0;
}