Pagini recente » Cod sursa (job #1600706) | Cod sursa (job #2222983) | Cod sursa (job #1538589) | Cod sursa (job #22835) | Cod sursa (job #2569821)
#include <bits/stdc++.h>
using namespace std;
ifstream in("disjoint.in");
ofstream out("disjoint.out");
const int DIM = 1e5 + 7;
int p[DIM];
int getp(int x)
{
if(p[x] < 0)
return x;
return getp(p[x]);
}
void unionp(int x, int y)
{
if(p[x] < p[y])
{
p[x] += p[y];
p[y] = x;
}
else
{
p[y] += p[x];
p[x] = y;
}
}
int main()
{
int n, m;
in >> n >> m;
for(int i = 1; i <= n; i++)
p[i] = -1;
while(m--)
{
int q, x, y;
in >> q >> x >> y;
int p1 = getp(x);
int p2 = getp(y);
if(q == 1)
{
if(p1 != p2)
unionp(p1,p2);
}
else
{
if(p1 == p2)
out <<"DA";
else
out <<"NU";
out <<'\n';
}
}
return 0;
}