Cod sursa(job #3368374)

Utilizator vik4torTunaru Victor-Cristian vik4tor Data 14 octombrie 2026 12:44:09
Problema Parcurgere DFS - componente conexe Scor 5
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.69 kb
#include <fstream>
#include <iostream>
#include <vector>
#include <bitset>
using namespace std;
ifstream fin("dfs.in");
ofstream fout("dfs.out");
vector<vector<int>> graph;
constexpr int NMAX = 100005;
bitset<NMAX> visited;
void DFS(int k) {
    visited[k] = true;
    for (int next : graph[k]) {
        if (!visited[next]) DFS(next);
    }
}
int main() {
    int N, M, x, y, nr_cc = 0;
    fin >> N >> M;
    graph.resize(N);
    for (int i = 0; i < M; i++) {
        fin >> x >> y;
        graph[x].push_back(y);
    }
    for (int i = 0; i < N; i++) {
        if (!visited[i]) {
            nr_cc++;
            DFS(i);
        }
    }
    fout << nr_cc << endl;
    fin.close();
    fout.close();
}