Cod sursa(job #2776676)

Utilizator bombardieruuCristi Mihai bombardieruu Data 20 septembrie 2021 17:35:37
Problema Parcurgere DFS - componente conexe Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.85 kb
#include <fstream>
#include <vector>

using namespace std;

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

const int maxN=100000;
vector <int> G[maxN+5];
int nr_noduri, nr_muchii, nr_cc;
bool vizitat[maxN+5];

void citire()
{
    fin>>nr_noduri>>nr_muchii;
    for(int i=1; i<=nr_muchii; i++)
    {
        int a, b;
        fin>>a>>b;
        G[a].push_back(b);
        G[b].push_back(a);
    }
}

void dfs(int nod)
{
    if(vizitat[nod])
        return;
    vizitat[nod]=1;
    for(int i=0; i<G[nod].size(); i++)
        dfs(G[nod][i]);
}

void solve()
{
    for(int i=1; i<=nr_noduri; i++)
    {
        if(!vizitat[i])
        {
            dfs(i);
            nr_cc++;
        }
    }
}

void afisare()
{
    fout<<nr_cc<<'\n';
}

int main()
{
    citire();
    solve();
    afisare();
    return 0;
}