Pagini recente » Cod sursa (job #1104419) | Cod sursa (job #1481783) | Cod sursa (job #2896506) | Cod sursa (job #2198198) | Cod sursa (job #3193348)
#include <iostream>
#include <fstream>
using namespace std;
#define MaxN 100000
int f[MaxN], height[MaxN];
int findd(int x) {
if(f[x]==x) return x;
return f[x]=findd(f[x]);
}
void unite(int x, int y) {
int fatherx, fathery;
fatherx=findd(x);
fathery=findd(y);
if(fatherx!=fathery) {
f[fatherx]=fathery;
}
}
int main() {
ifstream in("disjoint.in");
ofstream out("disjoint.out");
int n, m, i, type, x, y;
in>>n>>m;
for(i=0; i<n; i++) {
f[i]=i;
}
for(i=0; i<m; i++) {
in>>type>>x>>y;
if(type==1)
unite(x, y);
else {
int fatherx, fathery;
fatherx=findd(x);
fathery=findd(y);
if(fatherx!=fathery) {
out<<"NU"<<'\n';
}
else out<<"DA"<<'\n';
}
}
return 0;
}