Cod sursa(job #1697629)

Utilizator vancea.catalincatalin vancea.catalin Data 2 mai 2016 16:15:46
Problema Paduri de multimi disjuncte Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include<iostream>
#include<fstream>
#define DX 100010
using namespace std;
fstream fin("disjoint.in",ios::in),fout("disjoint.out",ios::out);
int n,m,tata[DX];
int tatic(int x)
{
    if(tata[x]!=x) return tata[x]=tatic(tata[x]);
    return x;
}
int main()
{
    int i,t,t1,t2,a,b;
    fin>>n>>m;
    for(i=1;i<=n;i++) tata[i]=i;
    for(i=1;i<=m;i++)
    {
        fin>>t>>a>>b;
        if(t==1)
        {
            t1=tatic(a);
            t2=tatic(b);
            tata[t1]=t2;
        }
        else
        {
            t1=tatic(a);
            t2=tatic(b);
            if(t1!=t2)
            {
                cout<<"NU\n";
            }
            else
            {
                cout<<"DA\n";
            }
        }
    }
}