Pagini recente » Cod sursa (job #803271) | Cod sursa (job #2458431) | Cod sursa (job #23446) | Cod sursa (job #227997) | Cod sursa (job #2638757)
#include <iostream>
#include <fstream>
using namespace std;
const int N = 1e5;
ifstream fin ( "disjoint.in" );
ofstream fout ( "disjoint.out" );
int boss[N+1];
int find_set ( int x ) {
if ( boss[x] == x )
return x;
return boss[x] = find_set ( boss[x] );
}
void union_set ( int x, int y ) {
int sef_x = find_set ( x );
int sef_y = find_set ( y );
boss[sef_x] = sef_y;
}
int main()
{
int n, k;
fin >> n >> k;
for ( int i = 1; i <= n; i ++ )
boss[i] = i;
for ( int i = 0; i < k; i ++ ) {
int test, x, y;
fin >> test >> x >> y;
if ( test == 1 )
union_set ( x, y );
else {
if ( find_set ( x ) == find_set ( y ) )
fout << "DA";
else
fout << "NU";
fout << '\n';
}
}
}