Pagini recente » Cod sursa (job #2823815) | Cod sursa (job #1792585) | Cod sursa (job #2150785) | Cod sursa (job #3146799) | Cod sursa (job #2686197)
#include <fstream>
#define nmax 100005
using namespace std;
int vt[nmax];
int n,m;
ifstream in("disjoint.in");
ofstream out("disjoint.out");
int radacina(int x)
{
if(vt[x]!=x)
vt[x]=radacina(vt[x]);
return vt[x];
}
void unire(int x, int y)
{
if(x!=y)
if(x<y)
vt[y]=x;
else
vt[x]=y;
}
int main()
{
int x,y,t;
in>>n>>m;
for(int i=1;i<=n;i++)
vt[i]=i;
for(int i=1;i<=m;i++)
{
in>>t>>x>>y;
int a=radacina(x);
int b=radacina(y);
if(t==1)
unire(a, b);
else
if(a == b)
out << "DA" << '\n';
else
out << "NU" << '\n';
}
}