Cod sursa(job #1123559)

Utilizator robert.onesimRobert Onesim robert.onesim Data 26 februarie 2014 09:07:23
Problema Parcurgere DFS - componente conexe Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include <stdio.h>
#include <vector>
using namespace std;
FILE *fin,*fout;
int n,m,cate;
vector <int> L[100001];
bool viz[100001];
void citire()
{
    int a,b;
    fin=fopen("dfs.in","r");
    fout=fopen("dfs.out","w");
    fscanf(fin,"%d%d",&n,&m);
    for(int i=1;i<=m;i++){
        fscanf(fin,"%d%d",&a,&b);
        L[a].push_back(b);
        L[b].push_back(a);
    }
}
void dfs(int x)
{
    viz[x]=1;
    for( int i=0;i<L[x].size();i++)
        if(viz[L[x][i]]==0)
            dfs(L[x][i]);
}
int main()
{
    citire();
    for(int i=1;i<=n;i++)
        if(viz[i]==0)
         {
             dfs(i);
             cate++;
             }
    fprintf(fout,"%d",cate);
}