Pagini recente » Diferente pentru utilizator/boss_de_boss intre reviziile 2 si 3 | Monitorul de evaluare | Monitorul de evaluare | Diferente pentru utilizator/bubblegumix intre reviziile 12 si 11 | Cod sursa (job #333669)
Cod sursa(job #333669)
#include<stdio.h>
#include<vector>
using namespace std;
vector<int> U,V;
int n,m,i,dad[100100];
void read(),solve();
int main()
{
read();
solve();
return 0;
}
void read()
{
freopen("disjoint.in","r",stdin);
freopen("disjoint.out","w",stdout);
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++)dad[i]=i;
}
void solve()
{
vector<int>::iterator it;
int c,u,v,d1,d2;
for(;m;m--)
{
scanf("%d%d%d",&c,&u,&v);
U.resize(0);V.resize(0);
for(;;){U.push_back(u);if(u==dad[u]){d1=u;break;}u=dad[u];}
for(;;){V.push_back(v);if(v==dad[v]){d2=v;break;}v=dad[v];}
if(c==1)d2=d1;
else d2==d1?printf("DA\n"):printf("NU\n");
for(it=U.begin();it!=U.end();it++)dad[*it]=d1;
for(it=V.begin();it!=V.end();it++)dad[*it]=d2;
}
}