Cod sursa(job #2106936)

Utilizator Lazar_LaurentiuLazar Laurentiu Lazar_Laurentiu Data 16 ianuarie 2018 16:12:33
Problema Paduri de multimi disjuncte Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.53 kb
#include <iostream>
#include <fstream>
#define MAX 100001

using namespace std;

int n,m,cod,p[MAX],a,b;
int findr(int nd){
  while(nd!=p[nd])nd=p[nd];
  return nd;
}

int main()
{
    ifstream f ("disjoint.in");
    ofstream g ("disjoint.out");
    f>>n>>m;
    for(int i=1;i<=n;i++)p[i]=i;
    for(int i=1;i<=m;i++){
      f>>cod>>a>>b;
      if(cod==1)p[findr(a)]=findr(b);
      else {
        if(findr(a)==findr(b))g<<"DA\n";
        else g<<"NU\n";
      }
    }
    f.close();
    g.close();
    return 0;
}