Cod sursa(job #2970511)

Utilizator AntoniaPopoviciAntonia-Adelina Popovici AntoniaPopovici Data 25 ianuarie 2023 12:53:06
Problema Parcurgere DFS - componente conexe Scor 15
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.71 kb
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;

#define NMAX 1000000

ifstream fin("dfs.in");
ofstream fout("dfs.out");
vector < int >graf[NMAX];
int n, m;
int viz[100005];
int nr_compCNX;

void dfs(int x)
{
    viz[x] = 1;
    for (auto i : graf[x])
        if (!viz[i])
            dfs(i);
}

int main()
{
    fin >> n >> m;
    for (int i = 1; i <= m; i++)
    {
        int a, b;
        fin >> a >> b;
        graf[a].push_back(b);
    }

    for (int i = 1; i <= n; i++)
    {
        if (!viz[i])
        {
            nr_compCNX++;
            dfs(i);
        }
    }
    fout << nr_compCNX;
    fin.close();
    fout.close();
    return 0;
}