Cod sursa(job #3229063)

Utilizator SkiboBogdan Cristian Skibo Data 13 mai 2024 17:09:56
Problema Paduri de multimi disjuncte Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.45 kb
#include <iostream>
#include <fstream>
#include <queue>
#include <vector>
#include <climits>
#include <stack>

using namespace std;

ifstream fin("disjoint.in"); /// parc.in
ofstream fout("disjoint.out");
queue <int> q;
int n, m, c, x, y, vt[100001], a, b;

int main()
{
    fin>>n>>m;
    for(int i = 1; i<=m; i++)
    {
        fin>>c>>x>>y;
        if(c == 1)
        {
            a = x;
            b = y;
            while(vt[a] != 0)
                a = vt[a];
            while(vt[b] != 0)
                b = vt[b];

            int a1 = x;
            int b1 = y;
            while(vt[a1] != 0)
            {
                a1 = vt[a1];
                vt[a1] = a;
            }
            while(vt[b1] != 0)
            {
                b1 = vt[b1];
                vt[b1] = b1;
            }
            vt[b] = a;
        }
        else
        {
            a = x;
            b = y;
            while(vt[a] != 0)
                a = vt[a];
            while(vt[b] != 0)
                b = vt[b];

            int a1 = x;
            int b1 = y;
            while(vt[a1] != 0)
            {
                a1 = vt[a1];
                vt[a1] = a;
            }
            while(vt[b1] != 0)
            {
                b1 = vt[b1];
                vt[b1] = b1;
            }

            if(a == b)
                fout<<"DA"<<endl;
            else fout<<"NU"<<endl;
        }
    }

}