Cod sursa(job #904326)

Utilizator nicnic28nichita trita nicnic28 Data 4 martie 2013 08:45:29
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <fstream>
using namespace std;
fstream in("disjoint.in",ios::in),out("disjoint.out",ios::out);
int m,n,cod,x,y,p[100100],rx,ry;
int r(int x){
    if(p[x]==x){
        return x;
    }
    int ra=r(p[x]);
    p[x]=ra;
    return ra;
}
int main()
{
    in>>n>>m;
    for(int i=1 ; i<=n ; i++){
        p[i]=i;
    }
    for(int i=1 ; i<=m ; i++){
        in>>cod>>x>>y;
        if(cod==1){
            rx=r(x);
            ry=r(y);
            p[rx]=ry;
        }
        if(cod==2){

            if(r(x)==r(y)){
                out<<"DA\n";
            }else{
                out<<"NU\n";
            }
        }
    }
    return 0;
}