Pagini recente » Cod sursa (job #2343644) | Cod sursa (job #2562417) | Cod sursa (job #417655) | Cod sursa (job #1819263) | Cod sursa (job #2812325)
#include <bits/stdc++.h>
#define DimMax 100000
using namespace std;
ifstream fin ( "disjoint.in" );
ofstream fout ( "disjoint.out" );
int n, m;
int op, x, y;
int sef[DimMax + 1];
int Find( int x )
{
if ( sef[x] == x )
return x;
else return sef[x] = Find( sef[x] );
}
void Union( int x, int y )
{
int sefsuprem1 = Find(x);
int sefsuprem2 = Find(y);
if ( sefsuprem1 != sefsuprem2 )
sef[sefsuprem2] = sefsuprem1;
}
int main()
{
fin >> n >> m;
for ( int i = 1; i <= n; i++ ) sef[i] = i;
for ( int i = 1; i <= m; i++ )
{
fin >> op >> x >> y;
if ( op == 1 )
Union(x, y);
else
{
if ( Find(x) == Find(y) )
fout << "DA" << '\n';
else fout << "NU" << '\n';
}
}
return 0;
}