Cod sursa(job #553056)

Utilizator SadmannCornigeanu Calin Sadmann Data 13 martie 2011 15:22:17
Problema Parcurgere DFS - componente conexe Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.86 kb
#include<fstream>
#include<vector>
#include<string.h>
#define NMAX 100002
using namespace std;
FILE *in,*out;
int N,M,start,x,y,i,j;
vector<int> A[NMAX];
int S[NMAX],cont;
bool viz[NMAX];

void BFS(int nod);

int main()
{
    ifstream in("dfs.in");
    ofstream out("dfs.out");
    in>>N>>M;
    for(i=1;i<=M;i++)
    {
        in>>x>>y;
        A[x].push_back(y);
      //  A[y].push_back(x);
    }
    for(i=1;i<=N;i++)
        if(!viz[i])
        {
            cont++;
            BFS(i);
        }
    out<<cont;

    return 0;
}

void BFS(int nod)
{
    int L=1;
    viz[nod]=true;
    S[L]=nod;
    for(i=1;i<=L;i++)
    {
        int dim=A[S[i]].size();
        for(j=0;j<dim;j++)
            if(!viz[A[S[i]][j]])
            {
                S[++L]=A[S[i]][j];
                viz[S[L]]=true;
            }
    }

}