Cod sursa(job #2097271)

Utilizator edynator34Nechitoaia George-Edward edynator34 Data 30 decembrie 2017 20:31:52
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include<fstream>
#include<iostream>
using namespace std;

long v[100005],n,m;

int cauta(long x)
{while(v[x]!=x)
    x=v[x];
 return x;
}

void reun(long x,long y)
{long xx,yy;
 xx=cauta(x);
 yy=cauta(y);
 v[yy]=xx;
}

void afisare(){
for(int i=1;i<=n;i++){
    cout<<v[i]<<' ';
}
cout<<'\n';
}

int main()
{long i,x,y;
 int cod;
 ifstream f("disjoint.in");
 ofstream g("disjoint.out");
 f>>n>>m;
 for(i=1;i<=n;i++)
   v[i]=i;
 for(i=1;i<=m;i++)
    {f>>cod>>x>>y;
     if(cod==1)  reun(x,y);
       else      if(cauta(x)==cauta(y)) g<<"DA"<<'\n';
                    else                 g<<"NU"<<'\n';
     }

 f.close();
 g.close();
 return 0;
}