Cod sursa(job #2575120)

Utilizator GabyD002Dobrita Gabriel GabyD002 Data 6 martie 2020 11:44:58
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.56 kb
#include <bits/stdc++.h>
using namespace std;
ifstream f("disjoint.in");
ofstream g("disjoint.out");

int n,m,r[1<<17];

int gasesteRad(int nod)
{   int k;
    for(k=nod; nod!=r[nod];)
        nod=r[nod];
    for(; k!=r[k]; r[k]=nod)
        k=r[k];
    return nod;
}

int main()
{   f>>n>>m;
    for(int i=1; i<=n; i++)
        r[i]=i;
    for(int t,x,y,rx,ry; f>>t>>x>>y;)
    {   rx=gasesteRad(x),ry=gasesteRad(y);
        if(t==1)
            r[ry]=rx;
        else
            g<<(rx==ry ? "DA\n" : "NU\n");
    }
    g.close(); return 0;
}