Pagini recente » Cod sursa (job #2227456) | Cod sursa (job #2967444) | Cod sursa (job #1236897) | Cod sursa (job #859168) | Cod sursa (job #1605817)
#include <iostream>
#include <vector>
#include <fstream>
#include<stdio.h>
using namespace std;
vector <int> v[100001];
int vec[100001];
int main()
{
freopen("disjoint.in","r",stdin);
freopen("disjoint.out","w",stdout);
int x, y, n, m, i, j;
int op;
scanf("%d%d",&n,&m);
for(i=1; i<=n; i++)
{ vec[i]=i;
v[i].push_back(i);
}
for(j=1; j<=m; j++)
{
scanf("%d%d%d",&op,&x,&y);
if(op==1) //reuniune
{
if(v[vec[x]].size()>=v[vec[y]].size()){
{int c=vec[y];
for(i=v[c].size()-1; i>=0; i--)
{vec[v[c][i]]=x;
v[vec[x]].push_back(v[c][i]);
v[c].pop_back();
}
}
}
else
{int c=vec[x];
for(i=v[c].size()-1; i>=0; i--)
{vec[v[c][i]]=y;
v[vec[y]].push_back(v[c][i]);
v[c].pop_back();
}
}
}
else{ //da sau nu
if(vec[x]==vec[y])
printf("DA\n");
else
printf("NU\n");
}
}
return 0;
}