Cod sursa(job #2845367)

Utilizator TudolHulubei Tudor Tudol Data 7 februarie 2022 19:06:01
Problema Parcurgere DFS - componente conexe Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.78 kb
#include <bits/stdc++.h>
using namespace std;

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

void Citire()
{
    int i, x, y;
    fin >> n >> m;
    for (i = 1; i <= m; i++)
    {
        fin >> x >> y;
        L[x].push_back(y);
        L[y].push_back(x);
    }
    ///for (i = 1; i <= n; i++)
    ///    sort(L[i].begin(), L[i].end());
}

void DFS(int k)
{
    viz[k] = 1;
    for (int i : L[k])
        if (!viz[i]) DFS(i);
}

/// O(n + m)
void Parcurgere()
{
    for (int k = 1; k <= n; k++)
        if (!viz[k])
        {
            nrCC++;
            DFS(k);
        }
    fout << nrCC << "\n";
}

int main()
{
    Citire();
    Parcurgere();
    fout.close();
    return 0;
}