Pagini recente » Cod sursa (job #657560) | Cod sursa (job #1454386) | Cod sursa (job #3172885) | Cod sursa (job #757056) | Cod sursa (job #2437868)
#include <bits/stdc++.h>
#define NM 100005
using namespace std;
ifstream f("disjoint.in");
ofstream g("disjoint.out");
int n,x,y,t[NM],last[NM];
void Read();
void Solve1();
int findRad(int);
int main()
{ Read();
return 0;
}
void Read()
{ f>>n;
for(int i=1; i<=n; i++) t[i]=last[i]=i;
int m;
f>>m;
while(m--)
{ int op;
f>>op>>x>>y;
if(op==1) Solve1();
else g<<(findRad(x)==findRad(y) ? "DA\n" : "NU\n");
}
}
void Solve1()
{ int r1=findRad(x),r2=findRad(y);
t[r2]=last[r1];
last[r1]=last[r2];
t[last[r1]]=t[last[r2]];
}
int findRad(int nod)
{ int k=nod;
while(k!=t[k]) k=t[k];
while(nod!=t[nod])
{ nod=t[nod];
t[nod]=k;
}
return nod;
}