Pagini recente » Cod sursa (job #894017) | Cod sursa (job #2393065) | Cod sursa (job #1630396) | Cod sursa (job #2366429) | Cod sursa (job #1467009)
#include <fstream>
using namespace std;
const int NMAX=100001;
int t[NMAX], n, k, i, x, y, tip;
int find(int x)
{
int pos=x, pos1=x;
while(t[pos])
pos=t[pos];
while(t[pos1])
{
int cpos1=pos1;
pos1=t[pos1];
t[cpos1]=pos;
}
return pos;
}
void unite(int x, int y)
{
t[find(x)]=find(y);
}
int main()
{
ifstream in("disjoint.in");
ofstream out("disjoint.out");
in>>n>>k;
for(i=1; i<=k; ++i)
{
in>>tip>>x>>y;
if(tip==1)
unite(x,y);
else
{
if(find(x)==find(y))
out<<"DA\n";
else out<<"NU\n";
}
}
return 0;
}