Cod sursa(job #2701824)

Utilizator beingsebiPopa Sebastian beingsebi Data 1 februarie 2021 20:53:17
Problema Parcurgere DFS - componente conexe Scor 15
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.65 kb
#include <bits/stdc++.h>
using namespace std;
ifstream f("dfs.in");
ofstream g("dfs.out");
// #define f cin
// #define g cout
vector<vector<int>> v;
vector<bool> bif;
void dfs(int);
int main()
{
    ios_base::sync_with_stdio(false);
    f.tie(nullptr);
    int n, m;
    f >> n >> m;
    v.resize(n + 1);
    bif.resize(n + 1);
    for (int x, y; m; m--)
        f >> x >> y, v[x].emplace_back(y);
    int rez = 0;
    for (int i = 1; i <= n; i++)
        if (!bif[i])
            dfs(i), rez++;
    g << rez;
    return 0;
}
void dfs(int x)
{
    bif[x] = 1;
    for (const auto &i : v[x])
        if (!bif[i])
            dfs(i);
}