Cod sursa(job #2859021)

Utilizator Biencutza04Leoveanu Bianca Biencutza04 Data 28 februarie 2022 19:03:34
Problema Paduri de multimi disjuncte Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.6 kb
#include <fstream>
using namespace std;
ifstream f("disjoint.in"); ofstream g("disjoint.out");
int n,m,T[100001];
int Radacina(int x)
{   int R,y;
    for(R=x;T[R]!=R;R=T[R]);
    for(;T[x]!=x;) {y=T[x]; T[x]=R; x=y;}
    return R;
}
void Unire(int k, int p)
{   T[k]=p;}
int main()
{   cin>>n>>m;
    for(int i=1;i<=n;i++) T[i]=i;
    while(m--)
    {   int x,y,op;
        cin>>op>>x>>y;
        if(op==1) Unire(Radacina(x),Radacina(y));
        else
            if(Radacina(x)==Radacina(y)) cout<<"DA\n";
                else cout<<"NU\n";
    }
    g.close(); f.close(); return 0;
}