Cod sursa(job #2090762)

Utilizator MarinPeptenaruMarin Vasile Peptenaru MarinPeptenaru Data 18 decembrie 2017 18:16:09
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <bits/stdc++.h>

using namespace std;
ifstream in("disjoint.in");
ofstream out("disjoint.out");
const int nx=100002;
int n,m,a[nx],op,i,j;
int grup (int i)
{
    if(i==a[i]) return i;
    a[i]=grup(a[i]);
    return a[i];
}
void uneste (int i, int j)
{
    a[grup(i)]=grup(j);
}
int main()
{
    in>>n>>m;
    for(int x=1; x<=n; x++)
        a[x]=x;
    for(;m;m--)
    {
        in>>op>>i>>j;
        if(op==1 && grup(i)!=grup(j))
            uneste(i,j);
        else
        {
            if(grup(i)==grup(j))
                out<<"DA"<<'\n';
            else
                out<<"NU"<<'\n';
        }
    }
    return 0;
}