Pagini recente » Cod sursa (job #1686199) | Cod sursa (job #378911) | Cod sursa (job #193118) | Cod sursa (job #344280) | Cod sursa (job #2759248)
#include <stdio.h>
#define MAX_N 100000
int sef[MAX_N];
int find( int x ) {
if ( sef[x] != x )
sef[x] = find( sef[x] );
return sef[x];
}
void onion( int x, int y ) {
sef[y] = find( x );
}
int main() {
FILE *fin, *fout;
int n, q, tip, x, y, i;
fin = fopen( "disjoint.in", "r" );
fscanf( fin, "%d%d", &n, &q );
for ( x = 0; x < n; x++ )
sef[x] = x;
fout = fopen( "disjoint.out", "w" );
for ( i = 0; i < q; i++ ) {
fscanf( fin, "%d%d%d", &tip, &x, &y );
if ( tip == 1 )
onion( x, y );
else {
if ( find( x ) == find( y ) )
fprintf( fout, "DA\n" );
else
fprintf( fout, "NU\n" );
}
}
fclose( fin );
fclose( fout );
return 0;
}