Cod sursa(job #1605788)

Utilizator herbertoHerbert Mohanu herberto Data 19 februarie 2016 15:14:21
Problema Paduri de multimi disjuncte Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include <stdio.h>
#define MAXN 100001

using namespace std;

int sef[MAXN];
int find(int x){
  if(sef[x]==0)
    return x;
  sef[x]=find(sef[x]);
  return sef[x];
}

//int v[MAXN][3];
int main(){
  FILE*fin=fopen("bile.in", "r");
  FILE*fout=fopen("bile.out", "w");
  int n, k, p, a, b, i;
  fscanf(fin, "%d%d", &n, &k);
  for(i=1; i<=k; i++){
    fscanf(fin, "%d%d%d", &p, &a, &b);
    if(p==1)
      sef[find(a)]=find(b);
    else{
      if(find(a)==find(b))
        fprintf(fout, "DA\n");
      else
        fprintf(fout, "NU\n");
    }
  }
  return 0;
}