Pagini recente » Cod sursa (job #2864417) | Cod sursa (job #2362774) | Cod sursa (job #252978) | Cod sursa (job #603557) | Cod sursa (job #3317612)
#include <fstream>
using namespace std;
ifstream in("disjoint.in");
ofstream out("disjoint.out");
const int N = 1e6 + 5;
int sef[N];
int boss(int x){
if(sef[x] == x)
return x;
return sef[x] = boss(sef[x]);
}
void unire(int x, int y){
int sefx = boss(x);
int sefy = boss(y);
sef[sefx] = sefy;
}
void verif(int x, int y){
if(boss(x) == boss(y))
out << "DA\n";
else
out << "NU\n";
}
int main()
{
int n, m;
in >> n >> m;
for(int i = 1; i <= n; i++)
sef[i] = i;
for(int i = 1; i <= m; i++){
int t, x, y;
in >> t >> x >> y;
if(t == 1)
unire(x, y);
else
verif(x, y);
}
return 0;
}