Cod sursa(job #2435470)

Utilizator bogdanvladmihaiBogdan Vlad-Mihai bogdanvladmihai Data 4 iulie 2019 02:28:40
Problema Parcurgere DFS - componente conexe Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.79 kb
#include <bits/stdc++.h>

#define Nmax 100005

using namespace std;

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

int N, M;

bool Seen[Nmax];

vector < int > Graph[Nmax];

int answer = 0;

void DFS(int node)
{
    Seen[node] = true;
    for(int i = 0; i < Graph[node].size(); ++i)
        if(Seen[Graph[node][i]] == 0)
            DFS(Graph[node][i]);
}

int main()
{
    fin >> N >> M;
    for(int i = 1; i <= M; ++i)
    {
        int home, destination;
        fin >> home >> destination;
        Graph[home].push_back(destination);
        Graph[destination].push_back(home);
    }
    for(int i = 1; i <= N; ++i)
    {
        if(Seen[i] == 0)
        {
            ++answer;
            DFS(i);
        }
    }
    fout << answer;
    return 0;
}