Cod sursa(job #2629222)

Utilizator Ionut_neuer58Raducu Ioan Stefan Ionut_neuer58 Data 19 iunie 2020 16:23:32
Problema Paduri de multimi disjuncte Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.69 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream in("E1.in");
ofstream out("E1.out");

int n, m, xx, yy, cer;
int p[100001];

int findit(int nod)
{
    int rr=nod, aux;
    while(rr!=p[rr]) rr=p[rr];
    while(nod!=p[nod]) aux=p[nod], p[nod]=rr, nod=aux;
    return rr;
}

void readit()
{
    in>>n>>m;
    for(int i=1; i<=n; i++) p[i]=i;
    while(m--)
    {
        in>>cer>>yy>>xx;
        if(cer==1)
        {
            p[findit(yy)]=findit(xx);
        }
        else
        {
            if(p[findit(yy)]==p[findit(xx)]) cout<<"DA\n";
            else cout<<"NU\n";
        }
    }
}

int main()
{
    readit();
    return 0;
}