Pagini recente » Cod sursa (job #1335539) | Cod sursa (job #2224575) | Cod sursa (job #1500820) | Cod sursa (job #743992) | Cod sursa (job #842366)
Cod sursa(job #842366)
#include <fstream>
using namespace std;
const int N = 100005;
const char ans[2][10] = {"NU\n", "DA\n"};
struct Pmd{
int T[N];
void init(int size){
for (int i = 1 ; i <= size ; i++)
T[i] = i;
}
int tata(int x){
if (x == T[x])
return x;
return T[x] = tata(T[x]);
}
void merge(int x, int y){
x = tata(x);
y = tata(y);
if (x == y)
return;
if (x < y)
T[y] = x;
else
T[x] = y;
}
};
Pmd P;
ifstream in("disjoint.in");
ofstream out("disjoint.out");
int main(){
int n, m, t, x, y;
in >> n >> m;
P.init(n);
while (m--){
in >> t >> x >> y;
x = P.tata(x);
y = P.tata(y);
if (t == 1)
P.merge(x, y);
else
out << ans[x == y];
}
return 0;
}