Cod sursa(job #1046162)

Utilizator ELHoriaHoria Cretescu ELHoria Data 2 decembrie 2013 18:38:02
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include <stdio.h>

int main()
{
	freopen("disjoint.in","r",stdin);
	freopen("disjoint.out","w",stdout);
	const int nmax = int(1e5) + 2;
	int n, m;
	int a, b, t;
	static int T[nmax];
	scanf("%d %d",&n,&m);
	for (int i = 1;i <= n;i++) {
		T[i] = i;
	}

	for (int i = 0;i < m;i++) {
		scanf("%d %d %d",&t,&a,&b);
		while (a != T[a]) {
			a = T[a];
		}

		while (b != T[b]) {
			b = T[b];
		}

		if (t == 1) {
			T[b] = a;
		} else {
			if (a == b) {
				printf("DA\n");
			} else {
				printf("NU\n");
			}
		}
	}
    return 0;
}