Pagini recente » Cod sursa (job #2693686) | Cod sursa (job #2633810) | Cod sursa (job #795922) | Cod sursa (job #700952) | Cod sursa (job #2469988)
#include<iostream>
#include<fstream>
#include<algorithm>
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
int n, el, i, f[100002],c,a,b,j,auxa,auxb;
int calc(int nod)
{
int aux=nod, a;
while(f[nod]>0)
nod=f[nod];
while(f[aux]>0)
{
a=aux;
aux=f[aux];
f[a]=nod;
}
return nod;
}
int main(){
fin>>el>>n;
for(i=1;i<=el;i++)
f[i]=-1;
for(i=1;i<=n;i++)
{
fin>>c>>a>>b;
auxa=calc(a);
auxb=calc(b);
if(c==1)
{
if(auxa!=auxb)
{
if(f[auxa]<f[auxb])
{
f[auxa]+=f[auxb];
f[auxb]=auxa;
}
else
{
f[auxb]+=f[auxa];
f[auxa]=auxb;
}
}
}
else
{
if(auxa==auxb)
fout<<"DA\n";
else
fout<<"NU\n";
}
}
fin.close();
fout.close();
return 0;
}