Pagini recente » Cod sursa (job #2494636) | Cod sursa (job #343734) | Cod sursa (job #2028777) | Cod sursa (job #3193004) | Cod sursa (job #2038996)
#include <iostream>
#include <fstream>
#define NMAX 1000005
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
int dad[NMAX], n, m, a, b, c;
int parinte(int nod){
if(dad[nod] == nod)
return nod;
return dad[nod] = parinte(dad[nod]);
}
void unite(int x, int y){
dad[parinte(x)] = parinte(y);
}
int main()
{
fin >> n >> m;
for(int i = 1; i <= n; i++)
dad[i] = i;
for(int i = 1; i <= m; i++){
fin >> a >> b >> c;
if(a == 1){
unite(b, c);
}
if(a == 2){
if(parinte(b) == parinte(c))
fout << "DA" << '\n';
else fout << "NU" << '\n';
}
}
return 0;
}