Cod sursa(job #2815895)

Utilizator MateiMorticiMatei Mortici MateiMortici Data 10 decembrie 2021 16:01:40
Problema Paduri de multimi disjuncte Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.64 kb
#include <fstream>

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

int v[100001];

int sef(int c1)
{
    if(v[c1]==c1)
        return c1;
    else
        return sef(v[c1]);
}
void reuniune(int c1,int c2)
{
    v[sef(c2)]=sef(c1);
}
int main()
{
    int c1,c2,tip,i,n,m;

    fin>>n>>m;

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

    for(i=1;i<=m;i++)
    {
        fin>>tip>>c1>>c2;

        if(tip==1)
            reuniune(c1 , c2);

        else
            if(sef(c1)==sef(c2))
                fout<<"DA"<<endl;
        else
                fout<<"NU"<<endl;
    }
    return 0;
}