Pagini recente » Cod sursa (job #2472541) | Cod sursa (job #1023718) | Cod sursa (job #1649050) | Statistici Harnagea Sabin (Xshaman) | Cod sursa (job #2331772)
#include <fstream>
#define NMAX 100002
using namespace std;
ifstream f("disjoint.in");
ofstream g("disjoint.out");
int t[NMAX],r[NMAX],n,m;
int drum(int x)
{
int r,y;
r=x;
while(r!=t[r])
r=t[r];
y=x;
while(x!=t[x])
{
y=t[x];
t[x]=r;
x=y;
}
return r;
}
void uneste(int x, int y)
{
if(r[x]>r[y])
t[y]=t[x];
else
t[x]=t[y];
if(r[x]==r[y])
r[y]++;
}
int main()
{
int cod,x,y;
f>>n>>m;
for(int i=1;i<=n;i++)
t[i]=i, r[i]=1;
for(int i=1;i<=m;i++)
{
f>>cod>>x>>y;
int rx=drum(x);
int ry=drum(y);
if(cod==1)
uneste(rx,ry);
else
if(rx==ry) g<<"DA"<<"\n";
else g<<"NU"<<"\n";
}
f.close(); g.close();
return 0;
}