Pagini recente » Cod sursa (job #3344003) | Cod sursa (job #3348348) | Cod sursa (job #792864) | Cod sursa (job #973900) | Cod sursa (job #3351561)
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
string filename = "disjoint";
ifstream fin(filename + ".in");
ofstream fout(filename + ".out");
const int NMAX = 1e5;
int parent[NMAX + 5];
int Find(int x)
{
if(x==parent[x])
return x;
return Find(parent[x]);
}
void unite(int u,int v)
{
int rootU = Find(u);
int rootV = Find(v);
parent[rootU] = rootV;
}
int main()
{
int n,q;
fin>>n>>q;
for(int i=1;i<=n;i++)
{
parent[i] = i;
}
while(q--)
{
int type,u,v;
fin>>type>>u>>v;
if(type==1)
{
unite(u,v);
}
else
{
bool ok = (Find(u) == Find(v));
if(ok==true)
fout<<"DA\n";
else
fout<<"NU\n";
}
}
return 0;
}