Cod sursa(job #393009)

Utilizator PavelRazvanPavel Razvan PavelRazvan Data 8 februarie 2010 18:54:01
Problema Parcurgere DFS - componente conexe Scor 15
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include <algorithm>
using namespace std;
#include<vector>

#define DIM 100005
vector <int> lst[DIM];
int n,m;
int viz[DIM];
void read ()
{
    int i,x,y;
    scanf ("%d%d",&n,&m);
    for (i=1; i<=m; ++i)
    {
        scanf ("%d%d",&x,&y);
        lst[x].push_back (y);
    }
}
void df (int start)
{
    int i;
    viz[start]=1;
    for(i=0;i<lst[start].size ();++i)
        if(viz[lst[start][i]]==0)
            df(lst[start][i]);
}
int main ()
{
    freopen ("dfs.in","r",stdin);
    freopen ("dfs.out","w",stdout);
    read ();
    int kontor=0;
    for(int i=1;i<=n;++i)
        if(viz[i]==0)
            df (i),++kontor;
    printf("%d",kontor);
    return 0;
}