Cod sursa(job #2304035)

Utilizator denmirceaBrasoveanu Mircea denmircea Data 17 decembrie 2018 14:02:47
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.68 kb
#include <iostream>
#include <fstream>
#define mod 10000
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
int t[100001],n,m,i,tip,rx,ry,x,y;
int rad(int x){
while(t[x]>0){
    x=t[x];
}
return x;

}
int main()
{
  fin>>n>>m;
  for(i=1;i<=n;i++)
    t[i]=-1;
for(;m;m--){
    fin>>tip>>x>>y;
    rx=rad(x);
    ry=rad(y);
  if(tip==2){
    if(rx==ry)
        fout<<"DA\n";
    else fout<<"NU\n";
  }
  else{
    if(rx!=ry){
            if(t[rx]<t[ry]){
        t[rx]+=t[ry];
        t[ry]=rx;
            }
            else
            {
                t[ry]+=t[rx];
                t[rx]=ry;
            }
    }
  }
}
}