Pagini recente » Cod sursa (job #258098) | Cod sursa (job #1710338) | Cod sursa (job #2548477) | Cod sursa (job #317302) | Cod sursa (job #1668818)
#include <fstream>
using namespace std;
int t[200010];
int n, m, i, ra, rb, a, b, tip;
int rad(int a) {
while (t[a] > 0)
a = t[a];
return a;
}
int main () {
ifstream fin ("disjoint.in");
ofstream fout("disjoint.out");
fin>>n>>m;
for (i=1;i<=n;i++)
t[i] = -1;
for (;m--;) {
fin>>tip>>a>>b;
ra = rad(a);
rb = rad(b);
if (tip == 1) {
//uneste
if (ra != rb) {
if (t[ra] < t[rb]) {
t[ra] += t[rb];
t[rb] = ra;
} else {
t[rb] += t[ra];
t[ra] = rb;
}
}
} else {
// verifica
fout<<((ra == rb) ? "DA\n" : "NU\n");
}
}
return 0;
}