Pagini recente » Cod sursa (job #2128427) | Cod sursa (job #2326109) | Cod sursa (job #2341288) | Cod sursa (job #1536578) | Cod sursa (job #1802110)
#include <bits/stdc++.h>
using namespace std;
ifstream in("disjoint.in");
ofstream out("disjoint.out");
int n, m, p[100003], r[100004], pos, x, y, cod;
int find(int nod)
{
if(p[nod] == nod) return nod;
pos = find(p[nod]);
p[nod] = pos;
return pos;
}
void uneste(int a, int b)
{
a = find(a);
b = find(b);
if(r[a] > r[b]) p[b] = a;
else p[a] = b;
if(r[a] == r[b]) r[b]++;
}
int main(){
in >> n >> m;
for(int i = 1; i <= n; i++)
{
p[i] = i;
r[i] = 1;
}
for(int i = 1; i <= m; i++)
{
in >> cod >> x >> y;
if(cod == 1)
{
uneste(x, y);
}
else
{
if(find(x) == find(y)) out << "DA\n"; else out << "NU\n";
}
}
return 0;
}