Cod sursa(job #2025814)

Utilizator AsttridMocanu Ada Astrid Asttrid Data 23 septembrie 2017 12:31:58
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.49 kb
#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;}