Cod sursa(job #3322725)

Utilizator dragos_poputepopute dragos mihai dragos_popute Data 15 noiembrie 2025 13:34:04
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.85 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
int n,m,tt[100001];

void op1(int x,int y)
{
    int q=x;
    while(q!=tt[q])
    {
        q=tt[q];
    }
    int p=y;
    while(p!=tt[p])
    {
        p=tt[p];
    }
    tt[p]=q;
}
void op2(int x,int y)
{
        int q=x;
    while(q!=tt[q])
    {
        q=tt[q];
    }
    int p=y;
    while(p!=tt[p])
    {
        p=tt[p];
    }
    if(p==q)
        fout<<"DA"<<endl;
    else
        fout<<"NU"<<endl;
}
int main()
{
    fin>>n>>m;
    for(int i=1;i<=n;i++)
    {
        tt[i]=i;
    }
    for(int i=1;i<=m;i++)
    {
        int x,y,z;
        fin>>x>>y>>z;
        if(x==1)
        {
            op1(y,z);
        }
        else
        {
            op2(y,z);
        }


    }
    return 0;
}