Pagini recente » Cod sursa (job #3361756) | Cod sursa (job #3362137) | Cod sursa (job #3361754) | Cod sursa (job #3361811) | Cod sursa (job #3362094)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
vector<int> tata;
vector<int> sz;
int n,q;
int rad(int x)
{
if(tata[x]==0)
{
return x;
}
tata[x]=rad(tata[x]);
return tata[x];
}
void join(int x,int y)
{
x=rad(x);
y=rad(y);
if(sz[x]>sz[y])
{
sz[x]+=sz[y];
tata[y]=x;
}
else
{
sz[y]+=sz[x];
tata[x]=y;
}
}
void query(int x,int y)
{
if(rad(x)==rad(y))
{
fout<<"DA"<<endl;
}
else fout<<"NU"<<endl;
}
int main()
{
tata.resize(100005);
sz.resize(100005);
fin>>n>>q;
for(int i=1;i<=q;i++)
{
int tip,x,y;
fin>>tip>>x>>y;
if(tip==1) join(x,y);
else query(x,y);
}
return 0;
}