Pagini recente » Cod sursa (job #1593990) | Cod sursa (job #1724965) | Cod sursa (job #1002719) | Cod sursa (job #1115883) | Cod sursa (job #2945025)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream f("disjoint.in");
ofstream g("disjoint.out");
vector <int> arb;
int radacina(int x) {
if(arb[x]==0)
return x;
return arb[x]= radacina(arb[x]);
}
void reuniune(int x, int y) {
int rad_x = radacina(x);
int rad_y = radacina(y);
if(x>y)
arb[rad_x] = rad_y;
else
arb[rad_y] = rad_x;
}
int main() {
int n,m,x,y,op;
f>>n>>m;
arb.resize(n+1,0);
for(int i=0;i<m;i++){
f>>op>>x>>y;
if(op==1)
reuniune(x,y);
else
if(radacina(x)==radacina(y))
g<<"DA"<<"\n";
else
g<<"NU"<<"\n";
}
f.close();
g.close();
return 0;
}