Cod sursa(job #588964)

Utilizator alexbotuAlex Botu alexbotu Data 10 mai 2011 11:24:40
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <stdio.h>
#include <fstream>
#define nmax 100042
using namespace std;

int f[nmax];

inline int multime(int nod)
{
    while(f[nod])
        nod=f[nod];
    return nod;
}

void pad()
{
	int n,t,x,y,op,m1,m2;
    scanf("%d%d",&n,&t);
    while(t--)
    {
        scanf("%d%d%d",&op,&x,&y);
        m1=multime(x);
        m2=multime(y);
        if(op==1)
                f[m1]=m2;
        else
            if(m1==m2)
                printf("DA\n");
            else 
				printf("NU\n");
    }
}

int main()
{
	freopen("disjoint.in","r",stdin);
	freopen("disjoint.out","w",stdout);
	pad();
    return 0;
}