Pagini recente » Cod sursa (job #2692551) | Cod sursa (job #2010688) | Cod sursa (job #3001496) | Cod sursa (job #1462594) | Cod sursa (job #3321495)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
int tata[100001],n,m;
int find_parent(int x)
{
if(tata[x] == x)
return x;
else
return tata[x] = find_parent(tata[x]);
}
void unite(int x, int y)
{
int sef_x = find_parent(x);
int sef_y = find_parent(y);
if(sef_x != sef_y)
tata[sef_x] = sef_y;
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
fin >> n >> m;
for(int i = 1; i <= n; i++)
tata[i] = i;
while(m--)
{
int op,st,dr;
fin >> op >> st >> dr;
if(op == 1)
unite(st,dr);
else
{
int sef_a = find_parent(st);
int sef_b = find_parent(dr);
if(sef_a == sef_b)
fout <<"DA";
else
fout << "NU";
fout << '\n';
}
}
return 0;
}