Pagini recente » Cod sursa (job #1884565) | Cod sursa (job #1637835) | Cod sursa (job #1866558) | Cod sursa (job #2664560) | Cod sursa (job #2601934)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("disjoint.in");
ofstream out("disjoint.out");
const int NMAX=100005;
int n,m,tip,v[NMAX];
int findit(int nod)
{
if(v[nod]!=nod)
{
v[nod]=findit(v[nod]);
}
return v[nod];
}
void unire(int x,int y)
{
int rootx=findit(x);
int rooty=findit(y);
v[rootx]=y;
}
void citire()
{
in>>n>>m;
for(int i=1;i<=n;i++)
{
v[i]=i;
}
for(int i=1;i<=m;i++)
{
int x,y;
in>>tip>>x>>y;
if(tip==1)
{
unire(x,y);
}
else
{
if(findit(x)==findit(y))
out<<"DA";
else
out<<"NU";
out<<"\n";
}
}
}
int main()
{
citire();
return 0;
}