Cod sursa(job #2426417)

Utilizator bluestorm57Vasile T bluestorm57 Data 27 mai 2019 21:06:13
Problema Paduri de multimi disjuncte Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.86 kb
#include <bits/stdc++.h>

using namespace std;

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

const int NMAX = 100005;
int n,m,cod;
bool ok,viz[NMAX];
vector <int> v[NMAX];

void dfs(int nod, int target){
    int i;
    if(nod == target)
        ok = 1;
    viz[nod] = 1;
    for(i = 0 ; i < v[nod].size() && !ok; i++)
        if(!viz[v[nod][i]])
            dfs(v[nod][i], target);
}

int main(){
    int i,x,y,j;
    f >> n >> m;
    for(i = 1 ; i <= m ; i++){
        f >> cod >> x >> y;
        if(cod == 1){
            v[x].push_back(y);
            v[y].push_back(x);
        }
        else{
            ok = 0;
            dfs(x,y);
            if(ok)
                g << "DA\n";
            else
                g << "NU\n";

            for(j = 1 ; j <= n ; j++)
                viz[j] = 0;
        }

    }

}