Cod sursa(job #2075057)

Utilizator robert_velisculfv@yahoo.comVeliscu Robert-Valentin [email protected] Data 25 noiembrie 2017 11:09:12
Problema Paduri de multimi disjuncte Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.94 kb
#include <fstream>
#include <algorithm>
#include <vector>

#define st second.first
#define dr second.second
#define cost first
#define din 200000
#define dim 100000

using namespace std;

ifstream f("disjoint.in");
ofstream g("disjoint.out");

vector <int> l[dim];
int n,m,i,x,y,z;
bool viz[dim];

void golire()
{
    for(int i = 1; i <= n; i ++)
        viz[i] = 0;
}

void dfs(int x)
{
    viz[x] = 1;
    for(int i = 0; i < l[x].size(); i ++)
    {
        if(!viz[l[x][i]])
            dfs(l[x][i]);
    }
}

int main()
{
    f >> n >> m;
    for(i = 1; i <= m; i ++)
    {
        f >> z >> x >> y;
        if(z == 1)
        {
            l[x].push_back(y);
            l[y].push_back(x);
        }
        else
        {
            golire();

            dfs(x);

            if(viz[y])
                g << "DA\n";
            else
                g<<"NU\n";
        }
    }
    return 0;
}