Cod sursa(job #1360830)

Utilizator buzu.tudor67Tudor Buzu buzu.tudor67 Data 25 februarie 2015 18:15:12
Problema Paduri de multimi disjuncte Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include<fstream>
using namespace std;
ifstream fi("disjoint.in");
ofstream fo("disjoint.out");

const int MAX_N = 100005;

int i,n,m,oper,x,y;
int tata[MAX_N];

int radacina(int x){
    while(x!=tata[x]) x=tata[x];
    return x;
}

void uneste(int x, int y){
     tata[x]=y;
}

int main(){
    fi>>n>>m;
    
    for(i=1;i<=n;i++) tata[i]=i;
    
    for(i=1;i<=m;i++){
                      fi>>oper>>x>>y;
                      if(oper==1) uneste(radacina(x),radacina(y));
                      else{
                           if(radacina(x)==radacina(y)) fo<<"DA\n";
                           else fo<<"NU\n";
                          } 
                     }
    
    fi.close();
    fo.close();
    return 0;
}