Pagini recente » Cod sursa (job #681253) | Cod sursa (job #402736) | Cod sursa (job #3151937) | Cod sursa (job #1746995) | Cod sursa (job #443790)
Cod sursa(job #443790)
#include<cstdio>
#include<vector>
using namespace std;
void read(),solve();
vector<int> vx,vy;
int n,m,i,x,y,rx,ry,c,T[100100];
int main()
{
read();
solve();
return 0;
}
void read()
{
freopen("disjoint.in","r",stdin);
freopen("disjoint.out","w",stdout);
scanf("%d%d",&n,&m);
}
void solve()
{
vector<int>::iterator it;
for(i=1;i<=n;i++)
T[i]=i;
for(;m;m--)
{
scanf("%d%d%d",&c,&x,&y);
vx.resize(0); vy.resize(0);
for(i=x;;)
{
vx.push_back(i);
if(T[i]==i)
{
rx=i;
break;
}
i=T[i];
}
for(i=y;;)
{
vy.push_back(i);
if(T[i]==i)
{
ry=i;
break;
}
i=T[i];
}
if(c==1)
rx=ry;
if(c==2)
{
if(rx==ry)
printf("DA\n");
else
printf("NU\n");
}
for(it=vx.begin();it!=vx.end();it++)
T[*it]=rx;
for(it=vy.begin();it!=vy.end();it++)
T[*it]=ry;
}
}