Cod sursa(job #1644793)

Utilizator larecursividadLa Recursividad larecursividad Data 10 martie 2016 09:30:23
Problema Parcurgere DFS - componente conexe Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <fstream>
#include <vector>
#define InFile  "dfs.in"
#define OutFile "dfs.out"
#define nmax 100002

using namespace std;

ifstream fin  (InFile);
ofstream fout (OutFile);

vector <int> G[nmax];
bool use[nmax];
int n, m, s;

void DFS (int nod)
{
    vector <int>::iterator it;
    use[nod] = 1;
    for (it=G[nod].begin(); it!=G[nod].end(); it++)
        if (!use[*it])
            DFS(*it);
}

int main ()
{
    int i, x, y;
    fin >> n >> m;
    for (i=0; i<m; i++)
    {
        fin >> x >> y;
        G[x].push_back(y);
        G[y].push_back(x);
    }
    for (i=1; i<=n; i++)
        if (!use[i])
    {
        DFS(i);
        s++;
    }
    fout << s;
    return 0;
}