Pagini recente » Cod sursa (job #2170424) | Cod sursa (job #2679518) | Cod sursa (job #2094477) | Cod sursa (job #462631) | Cod sursa (job #2705320)
#include <fstream>
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
int sef[100001];
int sefsuprem(int k) {
if (sef[k]==k)
return k;
else return sef[k]=sefsuprem(sef[k]);
}
void unire (int x, int y) {
int i, j;
i=sefsuprem(x);
j=sefsuprem(y);
sef[i]=j;
}
int main () {
int n, m, i, j, c, x, y;
fin >> n >> m;
for (i=1; i<=n; i++)
sef[i]=i;
for (i=1; i<=m; i++) {
fin >> c >> x >> y;
if (c==1) unire(x,y);
else {
if (sefsuprem(x)==sefsuprem(y))
fout << "DA" << '\n';
else fout << "NU" << '\n';
}
}
return 0;
}