Cod sursa(job #2329119)

Utilizator Username01Name Surname Username01 Data 26 ianuarie 2019 13:06:41
Problema Parcurgere DFS - componente conexe Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.67 kb
#include <cstdio>
#include <vector>

using namespace std;
FILE *f,*g;

bool viz[100002];
vector <int> v[100002];

void dfs(int nod)
{
    viz[nod]=1;
    for(int i=0;i<v[nod].size();++i)
        if(!viz[v[nod][i]])
            dfs(v[nod][i]);
}
int main()
{
    f=fopen("dfs.in","r");
    g=fopen("dfs.out","w");
    int m,n;
    fscanf(f,"%d %d",&n,&m);
    int x,y;
    for(int i=1;i<=m;++i)
    {
        fscanf(f,"%d %d",&x,&y);
        v[x].push_back(y);
        v[y].push_back(x);
    }
    int sol=0;
    for(int i=1;i<=n;++i)
        if(!viz[i])
            ++sol,dfs(i);
    fprintf(g,"%d\n",sol);
    fclose(f);
    fclose(g);
    return 0;
}