Pagini recente » Cod sursa (job #519991) | Cod sursa (job #1147587) | Cod sursa (job #2338063) | Cod sursa (job #51526) | Cod sursa (job #1429655)
#include <fstream>
using namespace std;
ifstream fin ("disjoint.in");
ofstream fout("disjoint.out");
int n, m;
int v[1000001];
int check(int a, int b){
while (a != v[a])
a = v[a];
while (b != v[b])
b = v[b];
if (a == b)
return 1;
else return 0;
}
void join(int a, int b){
while (b != v[b])
b = v[b];
while (a != v[a]){
int temp = v[a];
v[a] = b;
a = temp;
}
v[a] = b;
}
int main()
{
fin >> n >> m;
for (int i = 1; i <= n; i++)
v[i] = i;
for (int op, a, b; m; m--){
fin >> op >> a >> b;
if (op == 1)
join (a, b);
else if (check(a, b) == 1)
fout << "DA\n";
else fout << "NU\n";
}
return 0;
}