Cod sursa(job #2545089)

Utilizator stefan1anubystefan popa stefan1anuby Data 12 februarie 2020 20:23:29
Problema Paduri de multimi disjuncte Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.69 kb
#include <fstream>

using namespace std;
#define N 1000005
ifstream cin("disjoint.in");
ofstream cout("disjoint.out");
int P[N],S[N],n,m;
int Find(int nod)
{
    if(P[nod]==nod)
        return nod;
    else
        Find(P[nod]);
}
int main()
{
    int i,c,x,y,a,b;
    cin>>n>>m;
    for(i=1;i<=n;i++)
        P[i]=i;
    for(i=1; i<=m; i++)
    {
        cin>>c>>x>>y;
        a=Find(x);
        b=Find(y);
        P[x]=a;
        P[y]=b;
        if(c==1)
            P[x]=y;
        else
        {
            if(Find(x)==Find(y))
                cout<<"DA";
            else
                cout<<"NU";
            cout<<'\n';
        }
    }
    return 0;
}