Cod sursa(job #3362093)

Utilizator RZV139fjDragomir Ioan Razvan RZV139fj Data 2 august 2026 13:34:30
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.73 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
vector<int> tata;
vector<int> sz;

int n,q;

int rad(int x)
{
    if(tata[x]==0)
    {
        return x;
    }
    tata[x]=rad(tata[x]);
    return tata[x];
}

void join(int x,int y)
{
    x=rad(x);
    y=rad(y);
    tata[x]=y;
}



void query(int x,int y)
{
    if(rad(x)==rad(y))
    {
        fout<<"DA"<<endl;
    }
    else fout<<"NU"<<endl;
}



int main()
{
    tata.resize(100005);
    sz.resize(100005);
    fin>>n>>q;
    for(int i=1;i<=q;i++)
    {
        int tip,x,y;
        fin>>tip>>x>>y;
        if(tip==1) join(x,y);
        else query(x,y);

    }



    return 0;
}