Pagini recente » Cod sursa (job #478584) | Cod sursa (job #1600274) | Cod sursa (job #2460407) | Cod sursa (job #2929090) | Cod sursa (job #1382388)
#include <fstream>
#define n_max 100001
using namespace std;
ifstream r("disjoint.in");
ofstream w("disjoint.out");
long tata[n_max],rg[n_max];
long n,m;
long radacina(long nod) {
if (tata[nod]==0)
return nod;
else {
tata[nod]=radacina(tata[nod]);
return tata[nod];
}
}
int main() {
long i,task,x,y,a,b;
r>>n>>m;
for (i=1; i<=n; i++)
rg[i]=1;
for (i=1; i<=m; i++) {
r>>task>>x>>y;
a=radacina(x);
b=radacina(y);
if (task==1) {
if (rg[a]>rg[b])
tata[b]=a;
else
tata[a]=b;
if (rg[a]==rg[b])
rg[b]++;
}
else
if (a!=b)
w<<"NU"<<"\n";
else
w<<"DA"<<"\n";
}
r.close();
w.close();
return 0;
}