Cod sursa(job #2255708)

Utilizator radugheoRadu Mihai Gheorghe radugheo Data 7 octombrie 2018 14:27:13
Problema Parcurgere DFS - componente conexe Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.86 kb
#include <fstream>
#include <vector>
#define DIM 100005

using namespace std;

ifstream fin ("dfs.in");
ofstream fout("dfs.out");

vector <int> L[DIM];

int v[DIM], c[DIM], n, cc, i, j, m, t;

void bfs(int start, int componenta) {
    int nod, k;
    v[start] = componenta;
    c[1] = start;
    int p = 1, u = 1;
    while (p <= u) {
        nod = c[p];
        for (i=0; i<L[nod].size(); i++) {
            k = L[nod][i];
            if (v[k] == 0) {
                c[++u] = k;
                v[k] = componenta;
            }
        }
        p++;
    }
}

int main () {
    fin >> n >> m;
    for (t=1; t<=m; t++) {
        fin >> i >> j;
        L[i].push_back(j);
        L[j].push_back(i);
    }
    for (i=1; i<=n; i++)
        if (v[i] == 0) {
            cc++;
            bfs(i, cc);
        }
    fout << cc;
    return 0;
}