Pagini recente » Cod sursa (job #2379326) | Cod sursa (job #2672612) | Cod sursa (job #2533985) | Cod sursa (job #2541049) | Cod sursa (job #2335470)
#include <iostream>
#include <fstream>
using namespace std;
int v[100001];
int father[100001];
int main()
{
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
int n,m;
fin>>n>>m;
int p,a,b,c,d,cop;
int i;
for(i=0;i<m;i++){
fin>>p>>a>>b;
if(p==1){
if(father[a]==0 && father[b]==0){
father[b]=a;
}
else{
while(father[a]!=0)
a=father[a];
while(father[b]!=0)
b=father[b];
father[b]=a;
}
}
else{
c=a;
d=b;
while(father[a]!=0)
a=father[a];
while(father[b]!=0)
b=father[b];
if(a==b) fout<<"DA"<<endl;
else fout<<"NU"<<endl;
while(c!=a){
cop=c;
c=father[c];
father[cop]=a;
}
while(d!=b){
cop=d;
d=father[d];
father[cop]=b;
}
}
}
fin.close();
fout.close();
return 0;
}