Pagini recente » Cod sursa (job #1599442) | Cod sursa (job #2204348) | Cod sursa (job #399448) | Cod sursa (job #3185960) | Cod sursa (job #2675208)
#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;
}