Pagini recente » Cod sursa (job #1930021) | Cod sursa (job #2978389) | Cod sursa (job #2677266) | Cod sursa (job #2848471) | Cod sursa (job #2173810)
#include <cstdio>
#include <vector>
#define NMAX 100002
using namespace std;
int n,q;
int t[NMAX];
vector<int>F;
int find_t(int nod)
{
F.clear();
int what=nod;
while(what!=t[what])
{
F.push_back(what);
what=t[what];
}
for(auto w:F)
{
t[w]=what;
}
return what;
}
int main()
{
freopen("disjoint.in", "r", stdin);
freopen("disjoint.out", "w", stdout);
int x,y,cod;
scanf("%d%d", &n, &q);
for(int i=1; i<=n; i++)
{
t[i]=i;
}
while(q)
{
q--;
scanf("%d%d%d", &cod, &x, &y);
if(cod==1)
{
t[y]=x;
}
else
{
int r1=find_t(x);
int r2=find_t(y);
if(r1==r2)
{
printf("DA\n");
}
else
{
printf("NU\n");
}
}
}
return 0;
}