Cod sursa(job #1789144)

Utilizator zdavid112zIon David-Gabriel zdavid112z Data 26 octombrie 2016 18:46:19
Problema Parcurgere DFS - componente conexe Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <cstdio>
#include <vector>

using namespace std;

struct Nod
{
    vector<int> v;
    int s;
} v[100000];

void dfs(int n)
{
    if(v[n].s == 1)
        return;
    v[n].s = 1;
    for(int i = 0; i < v[n].v.size(); i++)
        dfs(v[n].v[i]);
}

int main()
{
    int n, m, i, j, a, b, r = 0;
    freopen("dfs.in", "r", stdin);
    freopen("dfs.out", "w", stdout);
    scanf("%d %d\n", &n, &m);
    for(i = 0; i < n; i++)
        v[i].s = 0;
    for(i = 0; i < m; i++)
    {
        scanf("%d %d\n", &a, &b);
        a--; b--;
        v[a].v.push_back(b);
        v[b].v.push_back(a);
    }
    for(i = 0; i < n; i++)
    {
        if(v[i].s == 0)
        {
            r++;
            dfs(i);
        }
    }
    printf("%d", r);
    return 0;
}