Pagini recente » Cod sursa (job #2127108) | Cod sursa (job #2834894) | Cod sursa (job #2033827) | Cod sursa (job #2687149) | Cod sursa (job #2871142)
#include <bits/stdc++.h>
using namespace std;
const int N = 100001;
int sef[N];
int sefsuprem(int n)
{
if(sef[n] == n)
return n;
sef[n] = sefsuprem(sef[n]);
return sef[n];
}
void unire(int a, int b)
{
sef[a] = sefsuprem(a);
sef[b] = sefsuprem(b);
sef[sef[a]] = sef[b];
}
int main()
{
ifstream cin("disjoint.in");
ofstream cout("disjoint.out");
int n, m;
cin >> n >> m;
for(int i = 1; i <= n; i++)
sef[i] = i;
for(int i = 1; i <= m; i++)
{
int t, a, b;
cin >> t >> a >> b;
if(t == 1)
unire(a, b);
else
{
if(sefsuprem(a) == sefsuprem(b))
cout << "DA\n";
else
cout << "NU\n";
}
}
return 0;
}