Pagini recente » Cod sursa (job #2346414) | Cod sursa (job #460306) | Cod sursa (job #2768132) | Cod sursa (job #2748165) | Cod sursa (job #2675218)
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
#define nmax 100005
ifstream in("disjoint.in");
ofstream out("disjoint.out");
int father[nmax], n, m;
int cautare(int x){
int radacina = x, y;
while(father[radacina]){
radacina = father[radacina];
}
while(x != radacina){
y = father[x];
father[x] = radacina;
x = y;
}
return radacina;
}
void combinare(int x, int y){
father[x] = y;
}
void read(){
in>>n>>m;
int x, y, operatie;
for(int i = 1; i <= m; i++){
in>>operatie>>x>>y;
x = cautare(x);
y = cautare(y);
if(operatie == 1){
combinare(x, y);
}
else{
if(x==y)
out<<"DA"<<'\n';
else
out<<"DA"<<'\n';
}
}
}
int main(){
read();
return 0;
}