Cod sursa(job #2767158)

Utilizator dinuionirinel10@gmail.comDinu Ion Irinel [email protected] Data 4 august 2021 22:34:22
Problema Parcurgere DFS - componente conexe Scor 5
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.75 kb
#include <iostream>
#include <fstream>
#include <list>

std::list<int> adj[100001];
bool visited[100001];

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

// dfs algorithm
void dfs(int source, bool *visited) {
    visited[source] = true;
    for (auto it = adj[source].begin();  it != adj[source].end(); it++) {
        if (!visited[*it]) {
            dfs(*it, visited);
        }
    }
}


int main(void) {
    int n, m, nr_comp = 0;
    // read inputs
    fin >> n >> m;
    for (int i = 0; i < m; ++i) {
        int n1, n2;
        fin >> n1 >> n2;
        adj[n1].push_back(n2);
    }
    for (int i = 0; i < n; ++i) {
        if (!visited[i]) {
            nr_comp++;
            dfs(i, visited);
        }
    }
    fout << nr_comp;
    return 0;
}