Pagini recente » Cod sursa (job #1057123) | Cod sursa (job #290964) | Cod sursa (job #452136) | Cod sursa (job #1691130) | Cod sursa (job #1922151)
#include <iostream>
#include <fstream>
#define maxN 100010
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
int n,m,dad[maxN];
int key,x,y;
void init()
{
for (int i=1; i<=n; ++i)
dad[i]=i;
}
int findSet(int x)
{
if (dad[x]==x) return x;
dad[x]=findSet(dad[x]);
return dad[x];
}
void makeSet(int x, int y)
{
dad[findSet(x)]=findSet(y);
}
int main()
{
fin>>n>>m;
init();
while (m--)
{
fin>>key>>x>>y;
switch (key)
{
case 1:
makeSet(x,y);
break;
case 2:
if (findSet(x)==findSet(y)) fout<<"DA\n";
else fout<<"NU\n";
break;
}
}
return 0;
}