Cod sursa(job #3037911)

Utilizator Luca529Taschina Luca Luca529 Data 26 martie 2023 17:25:45
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.62 kb
#include <iostream>
#include <fstream>

using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
int T[100001];

int R(int a)
{if(a==T[a])return a;
 else return T[a]=R(T[a]);
}

void L(int a, int b)
{if(T[a]<T[b])T[b]=T[a];
 else T[a]=T[b];
}

int main()
{   int n,m,a,b,c;
    fin>>n>>m;
    for(int i=1;i<=n;i++)
    T[i]=i;

    for(int i=1;i<=m;i++)
    {fin>>a>>b>>c;
     if(a==1)
     {int a1=R(b), b1=R(c);
      if(a1!=b1)L(a1, b1);
     }
     else
     {int a1=R(b), b1=R(c);
      if(a1==b1)fout<<"DA\n";
      else fout<<"NU\n";
     }
    }
    return 0;
}