Cod sursa(job #1443352)

Utilizator FlowstaticBejan Irina Flowstatic Data 27 mai 2015 19:34:19
Problema Parcurgere DFS - componente conexe Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1 kb
#include <cstdio>
#include <vector>
#define NMAX 100005
using namespace std;
FILE* fin=fopen("dfs.in","r");
FILE* fout=fopen("dfs.out","w");

vector< int > G[NMAX];
int N, M;
bool viz[NMAX];
int nr;

void CitireListeAdiacenta();
void DFSRecListaAdiacenta(int x);

int main()
{

    CitireListeAdiacenta();

    int i;
    for(i=1; i<=N; i++)
        if( !viz[i])
            {
                DFSRecListaAdiacenta(i);
              //  fprintf(fout,"\n");
                nr++;
            }

    fprintf(fout,"%d\n",nr);
    return 0;
}

void CitireListeAdiacenta()
{
    int i, x, y;
    fscanf(fin,"%d %d",&N,&M);

    for(i = 1; i <= M ; i++)
    {
        fscanf(fin,"%d %d",&x,&y);
        G[x].push_back(y);
        G[y].push_back(x);
    }

}


void DFSRecListaAdiacenta(int x)
{
    int i;

    viz[x] = 1;
   // fprintf(fout,"%d\n",x);

    for( i = 0; i < G[x].size(); i++)
         if( viz[G[x][i]] == 0 )
                DFSRecListaAdiacenta(G[x][i]);
}