Cod sursa(job #739309)

Utilizator dutzulBodnariuc Dan Alexandru dutzul Data 22 aprilie 2012 17:49:57
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <fstream>
#define LE 200000
using namespace std;
ifstream f("disjoint.in");
ofstream g("disjoint.out");
int i,n,op,T[LE],x,y,tip;
int main()
{
  f>>n>>op;

  for(i=1; i<=n; ++i)
    T[i]=i;

  for(i=1; i<=op; ++i)
    {
      f>>tip>>x>>y;
      if (tip==1)
        {
          while (x!=T[x])
            x=T[x];

          while (y!=T[y])
            y=T[y];
          T[y]=x;
        }
      else
        {
          while (x!=T[x])
            x=T[x];
          while (y!=T[y])
            y=T[y];

           if (x==y) g<<"DA"<<'\n';
           else g<<"NU"<<'\n';
        }
    }

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