Cod sursa(job #1217450)

Utilizator rangerChihai Mihai ranger Data 7 august 2014 14:02:25
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include<fstream>
using namespace std;

ifstream cin("disjoint.in");
ofstream cout("disjoint.out");

const int nmax = 100010;

int p[nmax],n,m;

int find(int x)
{
    return ((x==p[x])?x:(p[x]=find(p[x])));
}
int main()
{
    cin>>n>>m;
    for (int i=1;i<=n;i++) p[i]=i;
    while (m--)
    {
        int type,a,b;
        cin>>type>>a>>b;
        if (type == 1)
            p[find(a)]=find(b);
            else
            {
                if (find(a)==find(b)) cout<<"DA\n";
                    else cout<<"NU\n";
            }
    }
    return 0;

}