Pagini recente » Cod sursa (job #2390813) | Cod sursa (job #2494515) | Cod sursa (job #933855) | Cod sursa (job #620155) | Cod sursa (job #1920516)
#include<fstream>
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
int v[100001];
int parinte(int a){
if(v[a]<0)return a;
v[a]=parinte(v[a]);
return v[a];
}
void unire(int a, int b){
a=parinte(a);
b=parinte(b);
if(v[a]<v[b]){v[a]+=v[b];v[b]=a;}
else {v[b]+=v[a];v[a]=b;}
}
int main(){
int n,m,x,y,i,p;
fin>>n>>m;
for(i=1;i<=n;i++)
v[i]=-1;
for(i=1;i<=m;i++){
fin>>p>>x>>y;
if(p==2)if(parinte(x)==parinte(y))fout<<"DA"<<'\n';
else fout<<"NU"<<'\n';
if(p==1) unire(x,y);
}
fin.close();
fout.close();
return 0;
}