Pagini recente » Cod sursa (job #2953791) | Istoria paginii runda/simulare_oji_2023_clasa_9_15_martie | Arhiva de probleme | Cod sursa (job #2026564) | Cod sursa (job #2025814)
#include<fstream>
using namespace std;
ifstream in("disjoint.in");
ofstream out("disjoint.out");
const int DIM=100001;
int n,m,x,y,t[DIM],sz[DIM],p;
int cauta(int x){
while(t[x])x=t[x];
return x;
}
void uneste(int x,int y){
if(sz[x]<sz[y])t[x]=y;
else t[y]=x;}
int main(){int i,tx,ty;
in>>n>>m;
for(i=1;i<=m;i++)
{in>>p>>x>>y;
tx=cauta(x);
ty=cauta(y);
if(p==1)uneste(tx,ty);
else if(tx==ty)out<<"DA\n";
else out<<"NU\n";
}
in.close();
out.close();
return 0;}