Cod sursa(job #662877)

Utilizator alexzahazaharia alexandru alexzaha Data 17 ianuarie 2012 09:22:43
Problema Paduri de multimi disjuncte Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include <stdio.h>
#define max 100001
using namespace std;
int a,b,c,d,e,v[max];
int gaseste(int x)
{
    if (v[x]!=x)
    {
      v[x]=gaseste(v[x]);
    }
      return v[x];
}
int main()
{
freopen("disjoint.in","r",stdin);
freopen("disjoint.out","w",stdout);
scanf("%d%d",&a,&b);
while(a--)
  {
    v[a]=a;
  }
while(b--)
{
          scanf("%d%d%d",&c,&d,&e);
          if(c==1)
          v[gaseste(d)]==gaseste(e);
          else
          {
              if(gaseste(d)==gaseste(e))
              printf("DA\n");
              else
              printf("NU\n");
          }
}
fclose(stdin);
fclose(stdout);
return 0;
}