Cod sursa(job #2224703)

Utilizator StasBrega Stanislav Stas Data 24 iulie 2018 20:37:32
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("disjoint.in");
ofstream fout("disjoint.out");

const int NMAX=1e5+5;

int N,M,parent[NMAX];

int find(int p)
{
	if(parent[p]==p)
	    return p;
	return parent[p]=find(parent[p]);
}

int main()
{
	
	fin >> N >> M;
	
	for(int i=1;i<=N;i++)
		parent[i]=i;
	
	while(M--)
	{
		int k,x,y;
		fin >>  k >> x >> y;
		if(k==1)
		    parent[find(y)]=find(x);
		else
		{
			int a=find(x);
			int b=find(y);
			if(a==b)
			    fout << "DA\n";
			else
			    fout << "NU\n";
		}
	}
	
	return 0;
	
}