Cod sursa(job #1795216)

Utilizator tziplea_stefanTiplea Stefan tziplea_stefan Data 2 noiembrie 2016 08:50:46
Problema Paduri de multimi disjuncte Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <fstream>
#define VAL 100005

using namespace std;

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

int N, M, i;
int t, x, y;
int vfx, vfy;
int fat[VAL];

int GetFat(int a)
{
    if (fat[a]!=a)
      return GetFat(fat[a]);
    return fat[a];
}

int main()
{
    fin >> N >> M;
    for (i=1; i<=N; i++)
      fat[i]=i;
    for (i=1; i<=M; i++)
    {
        fin >> t >> x >> y;
        vfx=GetFat(x);
        vfy=GetFat(y);
        if (t==1)
          fat[vfx]=vfy;
        else
        {
            if (vfx==vfy)
              fout << "DA\n";
            else
              fout << "NU\n";
        }
    }
    fin.close();
    fout.close();
    return 0;
}