Cod sursa(job #1399060)

Utilizator turbowin120Amarandei-Stanescu Alexandru turbowin120 Data 24 martie 2015 15:51:51
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <stdio.h>
#include <fstream>
using namespace std;


int tata[100002],n,m;
ofstream out("disjoint.out");

int radacina( int x){
    if(tata[x]==0) return x;
    tata[x]=radacina(tata[x]);
    return tata[x];
}


void uneste(int x, int y){
    int rx=radacina(x), ry=radacina(y);
    if(rx!=ry){
        tata[rx]=y;

    }

}

void gaseste( int x, int y){

    if(radacina(x)==radacina(y)) out<<"DA\n";
    else out<<"NU\n";

}

void citire(){
    FILE * in;
    in=fopen("disjoint.in","r");
    fscanf(in,"%d%d",&n,&m);
    int a,b,c;
    for(int i=1;i<=m;i++){
        fscanf(in,"%d%d%d",&a,&b,&c);
        if(a==1) uneste(b,c);
        else gaseste(b,c);
    }

}


int main()
{
    citire();
    return 0;
}