Pagini recente » Cod sursa (job #921165) | Cod sursa (job #1913600) | Cod sursa (job #2621121) | Cod sursa (job #116758) | Cod sursa (job #2789013)
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
const int nmax=100000;
vector <int> r[nmax+1];
int v[nmax+1];
int main(){
int n,m;
fin>>n>>m;
for(int i=1;i<=n;i++){
r[i].push_back(i);
v[i]=i;
}
for(int im=1;im<=m;im++){
int x,a,b;
fin>>x>>a>>b;
if(x==1){
int s1=r[v[a]].size(),s2=r[v[b]].size();
if(s1<=s2){
for(int i=0;i<s1;i++){
r[v[b]].push_back(r[v[a]][i]);
v[r[v[a]][i]]=v[b];
}
}else{
for(int i=0;i<s2;i++){
r[v[a]].push_back(r[v[b]][i]);
v[r[v[b]][i]]=v[a];
}
}
}else{
if(v[a]==v[b]){
fout<<"DA\n";
}else{
fout<<"NU\n";
}
}
}
return 0;
}