Cod sursa(job #2449517)

Utilizator r00t_Roman Remus r00t_ Data 19 august 2019 23:04:21
Problema Paduri de multimi disjuncte Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.69 kb
#include <iostream>
#include <vector>
#include <fstream>
#include <cmath>
#include <cstdlib>

using namespace std;

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

int padure[100000];
int conexSz[100000];

int parent(int k)
{
	while (padure[k] != k)
	{
		k = padure[k];
	}
	return k;
}

void connect(int a, int b)
{
	padure[parent(a)] = parent(b);
}

int main()
{
	int n, m;
	fin >> n >> m;
	for (int i = 1; i <= n; i++) padure[i] = i;
	
	for (int i = 0; i < m; i++)
	{
		int t, a, b;
		fin >> t >> a >> b;
		if (t == 1)
		{
			connect(a, b);
		}
		else
			if (parent(a) == parent(b))
				fout << "DA\n";
			else fout << "NU\n";

	}
	

}