Pagini recente » Cod sursa (job #627838) | Cod sursa (job #151685) | Cod sursa (job #841852) | Cod sursa (job #1875342) | Cod sursa (job #1436898)
#include <iostream>
#include<fstream>
using namespace std;
int v[100001],rang[100001],n,m;
void uneste(int x,int y)
{
if(v[x]>v[y])
v[y]=x;
else
v[x]=y;
if(rang[x]==rang[y])
rang[y]++;
}
int cauta(int x)
{
int c,y;
c=x;
while(v[c]!=c)
c=v[c];
while(v[x]!=x)
{
y=v[x];
v[x]=c;
c=y;
}
}
int main()
{
int i,x,y,cod;
ifstream f("disjoint.in");
f>>n>>m;
for(i=1;i<=n;i++)
{
v[i]=i;
rang[i]=1;
}
ofstream g("disjoint.out");
for(i=1;i<=m;i++)
{
f>>cod>>x>>y;
if(cod==1)
uneste(x,y);
else
if(cauta(x)==cauta(y))
g<<"DA"<<"\n";
else
g<<"NU"<<"\n";
}
f.close();
g.close();
return 0;
}