Cod sursa(job #2780548)

Utilizator alessiamtr12Mitrica Alessia alessiamtr12 Data 7 octombrie 2021 11:41:45
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.73 kb
#include <fstream>

using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
int tata[100001];
int n,m,cer,x,y;
int radacina(int x)
{
    if(x==tata[x])
        return x;
    return tata[x]=radacina(tata[x]);
}
void leaga(int x,int y)
{
    tata[y]=tata[x];
}
int main()
{
    fin>>n>>m;
    for(int i=1;i<=n;i++)
        tata[i]=i;
    for(int i=1;i<=m;i++)
    {
        fin>>cer>>x>>y;
        int radx=radacina(x);
        int rady=radacina(y);
        if(cer==1)
        {
            leaga(radx,rady);
        }
        else
        {
            if(radx==rady)
                fout<<"DA"<<"\n";
             else
                fout<<"NU"<<"\n";
        }
    }
    return 0;
}