Pagini recente » Cod sursa (job #1196335) | Cod sursa (job #3213694) | Cod sursa (job #668755) | Cod sursa (job #1747395) | Cod sursa (job #1054363)
#include <fstream>
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
const int nmax= 100000;
int v[nmax+1];
int up( int a, int b ) {
if ( v[a]!=v[v[a]] ) {
v[a]= up( v[a], b );
} else if ( b>0 ) {
v[a]= b;
}
return v[a];
}
int main( ) {
int n, m;
fin>>n>>m;
for ( int i= 1; i<=n; ++i ) {
v[i]= i;
}
for ( ; m>0; --m ) {
int t, x, y;
fin>>t>>x>>y;
if ( v[x]!=v[v[x]] ) {
v[x]= up(x, 0);
}
if ( v[y]!=v[v[y]] ) {
v[y]= up(y, 0);
}
if ( t==1 ) {
v[y]= up(v[y], v[x]);
} else {
if ( v[x]==v[y] ) {
fout<<"DA\n";
} else {
fout<<"NU\n";
}
}
}
return 0;
}