Pagini recente » Cod sursa (job #3275852) | Cod sursa (job #3211515) | Cod sursa (job #2267796) | Cod sursa (job #149300) | Cod sursa (job #2232869)
#include <fstream>
using namespace std;
ifstream f("disjoint.in");
ofstream g("disjoint.out");
int x,y,i,n,m,v[100001],cod;
void reuniune(int x,int y){
if(v[x]>v[y]){
v[y]=v[y]+v[x];
v[x]=y;
}
else{
v[x]=v[x]+v[y];
v[y]=x;
}
}
int parinte(int x){
while(v[x]>0)
x=v[x];
return x;
}
int main()
{ f>>n>>m;
for(i=1;i<=n;i++){
v[i]=-1;
}
for(i=1;i<=m;i++){
f>>cod>>x>>y;
if(cod==1){
x=parinte(x);
y=parinte(y);
reuniune(x,y);
}
else{
x=parinte(x);
y=parinte(y);
if(x==y)
g<<"DA"<<'\n';
else
g<<"NU"<<'\n';
}
}
return 0;
}