Pagini recente » Cod sursa (job #185368) | Cod sursa (job #2084487) | Cod sursa (job #2327357) | Cod sursa (job #2267105) | Cod sursa (job #1761019)
#include <iostream>
#include <vector>
using namespace std;
int n,x, a, b, m[100001],ma,i,j,nr;
bool use[50010];
vector <int> v[100010];
void unesc(int x, int y)
{
for(int i=0;i<v[x].size();i++)
{
v[y].push_back(v[x][i]);
m[v[x][i]]=y;
}
}
int main()
{
freopen("disjoint.in","r",stdin);
freopen("disjoint.out","w",stdout);
cin>>n>>ma;
for(int i=0;i<=n;i++)
{
v[i].push_back(i);
m[i]=i;
}
for(int i=1;i<=ma;i++)
{
cin>>x>>a>>b;
if(x==2)
{
if(m[a]==m[b])
cout<<"DA\n";
else cout<<"NU\n";
}
else{
if(v[m[a]].size()<v[m[b]].size())
{
unesc(m[a], m[b]);
}
else
unesc(m[b], m[a]);
}
}
}