Cod sursa(job #3164222)

Utilizator laura2020Moldovan Laura laura2020 Data 2 noiembrie 2023 14:32:24
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.84 kb
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;

ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
vector<int> t;
int tata(int x)
{
    if(t[x]==x)
        return x;
    int aux=tata(t[x]);
    t[x]=aux;
    return aux;
}

int main()
{
    int n,m,i,tx,a,b,c,ty;
    fin>>n>>m;
    t.resize(n+1);
    for(i=1;i<=n;i++)
        t[i]=i;
    for(i=0;i<m;i++)
    {
        fin>>a>>b>>c;
        if(a==2)
        {
            tx=tata(b);
            ty=tata(c);
            if(tx==ty)
            {
                fout<<"DA"<<'\n';
            }
            else
            {
                fout<<"NU"<<'\n';
            }
        }
        else if(a==1)
        {
            tx=tata(b);
            ty=tata(c);
            t[tx]=ty;
        }
    }
    return 0;
}