Pagini recente » Cod sursa (job #890359) | Cod sursa (job #665839) | Cod sursa (job #1918002) | Cod sursa (job #2357642) | Cod sursa (job #2853612)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
const int NMAX = 200000;
int tata[NMAX+5];
int g[NMAX+5];
void define(int n)
{
for(int i = 1; i <= n; i++)
{
tata[i] = i;
g[i] = 1;
}
}
int Find(int nod)
{
while(nod != tata[nod])
nod = tata[nod];
return nod;
}
void Union(int a, int b)
{
a = Find(a);
b = Find(b);
if(g[a]>g[b])
swap(a,b);
tata[a] = b;
g[b]+=g[a];
}
int main()
{
int n, m, t, x, y;
fin >> n >> m;
define(n);
for(int i = 1; i <= m; i++)
{
fin >> t >> x >> y;
if(t==1)
Union(x,y);
else
{
if(Find(x)==Find(y))
fout << "DA";
else
fout << "NU";
fout << "\n";
}
}
return 0;
}