Cod sursa(job #2131015)

Utilizator serban24Popovici Serban-Florin serban24 Data 14 februarie 2018 10:42:28
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("disjoint.in");
ofstream fout("disjoint.out");

int GR[100005];

int grupa(int i){
    if(GR[i]==i)
        return i;

    GR[i]=grupa(GR[i]);

    return GR[i];
}

void reuniune(int x, int y){
    GR[grupa(x)]=grupa(y);
}

int main(){
    int n,m,i,p,x,y;

    fin>>n>>m;

    for(i=1;i<=n;i++)
        GR[i]=i;

    for(i=1;i<=m;i++){
        fin>>p>>x>>y;
        if(p==1)
            reuniune(x,y);
        else
            if(GR[grupa(x)]==GR[grupa(y)])
                fout<<"DA\n";
            else
                fout<<"NU\n";
    }

	return 0;
}