Pagini recente » Cod sursa (job #577154) | Cod sursa (job #3173200) | Cod sursa (job #2170707) | Cod sursa (job #1469658) | Cod sursa (job #2787673)
#include <bits/stdc++.h>
using namespace std;
ifstream f ("disjoint.in");
ofstream g ("disjoint.out");
int parinte[100005];
int n,q;
void unire(int x, int y)
{
parinte[y]=x;
}
int Find(int x)
{
int par=x;
int aux;
while(parinte[par]!=0)
{
par=parinte[par];
}
aux=par;
par=x;
int aux2;
while(parinte[par]!=0)
{
aux2=parinte[par];
parinte[par]=aux;
par=aux2;
}
return aux;
}
int main()
{
f>>n>>q;
for(int query=1; query<=q; ++query)
{
int tip;
f>>tip;
if(tip==1)
{
int x ;
int y;
f>>x>>y;
int r1=Find(x);
int r2=Find(y);
if(r1!=r2)
unire(r1,r2);
}
if (tip==2)
{
int x, y;
f>>x>>y;
int tata1=Find(x);
int tata2=Find(y);
if(tata1==tata2)
{
g<<"DA"<<"\n";
}
else
g<<"NU"<<"\n";
}
}
return 0;
}