Cod sursa(job #1770602)

Utilizator VladG26Ene Vlad-Mihai VladG26 Data 4 octombrie 2016 17:29:14
Problema Paduri de multimi disjuncte Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <iostream>
#include <cstdio>
using namespace std;

int v[100],n,m;
void initializer()
{
    for(int i=1; i<=n; i++)
        v[i]=i;
}
int radacina(int i)
{
    while(i!=v[i])
    {
        i=v[i];
    }
    return i;
}
void intesectie(int x,int y)
{
    v[radacina(x)]=radacina(y);
}
void interogare(int x,int y)
{
    if(radacina(x)==radacina(y)) cout<<"DA"<<"\n";
    else cout<<"NU"<<"\n";
}

int main()
{
    freopen("disjoint.in","r",stdin);
    freopen("disjoint.out","w",stdout);
    scanf("%d%d",&n,&m);
    initializer();
    int x,y,z;
    for(int i=1; i<=m; i++)
    {
        scanf("%d%d%d",&x,&y,&z);
        if(x==2)
            interogare(y,z);
        else intesectie(y,z);
    }

    return 0;
}