Cod sursa(job #2708557)

Utilizator NoRules123Osadici Darius Bogdan NoRules123 Data 18 februarie 2021 21:36:40
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.71 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
int T[100001],x,y,tip,q,n;
int Find(int a)
{
    if(a==T[a])
        return a;
    return T[a]=Find(T[a]);
}
int Union(int a,int b)
{
    a=Find(a);
    b=Find(b);
    T[a]=b;
}
int main()
{
    fin>>n>>q;
    for(int i=1;i<=n;i++)
        T[i]=i;
    while(q--)
    {
        fin>>tip;
        if(tip==1)
        {
            fin>>x>>y;
            Union(x,y);
        }
        else
        {
            fin>>x>>y;
            if(Find(x)==Find(y))
                fout<<"DA";
            else
                fout<<"NU";
            fout<<'\n';
        }
    }
    return 0;
}