Cod sursa(job #2912404)

Utilizator CrullTCrull Thomas CrullT Data 8 iulie 2022 12:08:10
Problema Paduri de multimi disjuncte Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.71 kb
#include <fstream>

using namespace std;

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

int v[100001];

bool check(int i, int j)
{
    int aux1=j;
    while(v[aux1]!=aux1)
        aux1=v[aux1];
    int aux2=i;
    while(v[aux2]!=aux2)
        aux2=v[aux2];
    if(aux1==aux2)
        return 1;
    else
        return 0;
}

int main()
{
    int n,m,o,i,j;
    in>>n>>m;
    for(i=1;i<=n;i++)
        v[i]=i;
    while(m)
    {
        in>>o>>i>>j;
        if(o==1)
            v[j]=i;
        else
        {
            if(check(i,j)==true)
                out<<"DA"<<'\n';
            else
                out<<"NU"<<'\n';
        }
        m--;
    }
    return 0;
}