Pagini recente » Cod sursa (job #972406) | Cod sursa (job #1858419) | Cod sursa (job #2437054) | Cod sursa (job #2899730) | Cod sursa (job #1407572)
#include <fstream>
#define MAXN 100005
using namespace std;
long v[MAXN];
long go(long x)
{
while(v[x]) x=v[x];
return x;
}
void mark(long x, long mark)
{
long aux;
while(v[x])
{
aux=x;
x=v[x];
v[aux]=mark;
}
}
int main()
{
ifstream in("disjoint.in");
ofstream out("disjoint.out");
long n, m, a, b, t, aux1, aux2;
in>>n>>m;
for(long i=0; i<m; ++i)
{
in>>t>>a>>b;
switch(t)
{
case 1:
aux1=go(a);
aux2=go(b);
v[aux2]=aux1;
break;
case 2:
aux1=go(a);
mark(a, aux1);
aux2=go(b);
mark(b, aux2);
if(aux1==aux2) out<<"DA\n";
else out<<"NU\n";
break;
}
}
in.close(); out.close();
return 0;
}