Cod sursa(job #2542115)

Utilizator cookieAndreea L. cookie Data 9 februarie 2020 15:08:59
Problema Parcurgere DFS - componente conexe Scor 5
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.3 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
using namespace std;

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

int nr = 0, frecv[10000];
vector<int> v[100];
queue<int> q;

void verif(int x) {
    if (q.size() == 0) {
        nr++;
        //cout << "NR++\n";
        return;
    }
    if (frecv[q.front()] == 1) {
        q.pop();
        //cout << "pop\n";
        verif;
    } else {
        for (int j = 0; j < v[x].size(); j++) {
            q.push(v[x][j]);
            //cout << "pun " << v[x][j] << "\n";
        }
        frecv[x] = 1;
        q.pop();
        //cout << "pop\n";
    }
    if (q.size() == 0) {
        nr++;
        //cout << "NR++\n";
        return;
    }
    verif(q.front());
}

int main() {
    int n, m;
    fin >> n >> m;
    for (int i = 1; i <= m; i++) {
        int x, y;
        fin >> x >> y;
        v[x].push_back(y);
    }
    for (int i = 1; i <= n; i++) {
        //cout << "i: " << i << "\n";
        /*
        for (int i = 0; i < q.size(); i++) {
            cout << q[i] << " ";
        }
        cout << '\n\n';
        */
        if (frecv[i] == 0) {
            //cout << "pun " << i << "\n";
            q.push(i);
            verif(i);
        }
    }
    fout << nr;
    return 0;
}