Cod sursa(job #2143182)

Utilizator mihailrazMihail Turcan mihailraz Data 25 februarie 2018 17:22:46
Problema Parcurgere DFS - componente conexe Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.9 kb
#include <bits/stdc++.h>
#define NMAX 100000

using namespace std;
ifstream fi("dfs.in");
ofstream fo("dfs.out");
int n,m,rez;
int VIZ[NMAX+1];
vector <int> VECINI[NMAX+1];

void citire(void)
{
    int x,y;
    fi>>n>>m;
    for(int i=1; i<=m; i++)
    {
        fi>>x>>y;
        VECINI[x].push_back(y);
        VECINI[y].push_back(x);
    }
}

void DFS(int nod)
{
    int nods;
    for(int i=0; i<VECINI[nod].size(); i++)
    {
        nods=VECINI[nod][i];
        if(!VIZ[nods])
        {
            VIZ[nods]=1;
            DFS(nods);
        }
    }
}

void rezolvare(void)
{
    for(int i=1; i<=n; i++)
        if(!VIZ[i])
        {
            rez++;
            VIZ[i]=1;
            DFS(i);
        }
}

inline void afisare(void)
{
    fo<<rez;
}

int main()
{
    citire();
    rezolvare();
    afisare();
    fi.close();
    fo.close();
    return 0;
}