Pagini recente » Cod sursa (job #1557792) | Cod sursa (job #2296051) | Cod sursa (job #1317110) | Cod sursa (job #2046566) | Cod sursa (job #2000269)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("disjoint.in");
ofstream out("disjoint.out");
int v[100005];
int v2[100005];
int f(int x)
{
while(v[x] != x)
x = v[x];
return x;
}
void verif(int x, int y)
{
if(v2[x] == v2[y])
{
v[y] = x;
v2[x]++;
}
else
if(v2[x] > v2[y])
v[y] = x;
else
v[x] = y;
}
int main()
{
int n, m;
in >> n >> m;
for(int i = 1; i <= n; i++)
{
v[i] = i;
v2[i] = 1;
}
for(int i = 1; i <= m; i++)
{
int a, b, c;
in >> a >> b >> c;
b = f(b);
c = f(c);
if(a == 1)
verif(b, c);
else
if(b == c)
out << "DA" << '\n';
else
out << "NU" << '\n';
}
return 0;
}