Cod sursa(job #1801790)

Utilizator Sergiu1256Ionita Sergiu1256 Data 9 noiembrie 2016 16:58:32
Problema Paduri de multimi disjuncte Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include<bits/stdc++.h>
using namespace std;
int Array[100100],count,number,operation,t,x,y;
int find(int nod){
    if (Array[nod] == nod) return nod;
    int help = find(Array[nod]);
    Array[nod] = help;
    return help;
}
void unite(int a, int b){
	a=find(a);
	b=find(b);
	Array[a]=b;
}
int main(){
	ifstream fin("disjoint.in");
	ofstream fout("disjoint.out");
	ios_base::sync_with_stdio(false);
    fin.tie(0);
	fin>>number>>operation;
	for(long count=1;count<=number;count++) Array[count]=count;
	for(long count=1;count<=operation;count++){
	fin >> t >>x >>y;
	if (t==1) unite(x,y);
	else fout<<(find(x)==find(y)?"DA":"NU")<<endl;
}
	return 0;
}