Cod sursa(job #2544861)

Utilizator dinugaftonGafton Dinu dinugafton Data 12 februarie 2020 16:34:25
Problema Paduri de multimi disjuncte Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.54 kb
#include<bits/stdc++.h>
using namespace std;
int n,x,y,a[100005],c,m;vector <int> v;
int find(int nod){
	if(a[nod]==nod)return nod;
	a[nod]=find(a[nod]);
	return a[nod];
	
}
void unirea_mare(int x,int y){
	a[find(x)]=a[find(y)];
}
int main(){
	ifstream cin("disjoint.in");
	ofstream cout("disjoint.out");
	cin>>n>>m;
	for(int i=1;i<=n;i++)a[i]=i;
	for(int i=1;i<=m;i++){
		cin>>c>>x>>y;
		switch(c){
			case 1:unirea_mare(x,y);break;
			case 2:if(find(x)==find(y))cout<<"DA"<<endl;else cout<<"NU"<<endl;break;
		}
	}
	return 0;
}