Pagini recente » Cod sursa (job #454857) | Cod sursa (job #1718176) | Cod sursa (job #930130) | Cod sursa (job #2045298) | Cod sursa (job #2945495)
#include<bits/stdc++.h>
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
vector<int> mult;
int x, y, n, m, cod;
//afla nr de ordine al multimii din care face parte n acum
int unu(int n){
if(mult[n] != n){
mult[n]=mult[mult[n]];
n = mult[n];
}
return n;
}
void unuu(int& x, int& y){
int a = unu(x);
int b = unu(y);
mult[a] = b;
}
void doi(int& x, int& y){
if (unu(x) == unu(y))
fout<<"DA"<<endl;
else
fout<<"NU"<<endl;
}
int main(){
fin>>n>>m;
mult.resize(n+1);
for(int i=1; i<=n; i++)
//vectorul retine multimea din care face parte iteratorul
mult[i] = i;
for(int i=1; i<=m; i++){
fin>>cod>>x>>y;
if(cod == 1)
unuu(x,y);
//mult[unu(x)] = unu(y);
else
doi(x,y);
}
}