Cod sursa(job #1790045)

Utilizator BlackLordFMI Alex Oprea BlackLord Data 27 octombrie 2016 18:40:01
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <fstream>
#include <vector>

#define DIM 100010

using namespace std;

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

const int N = 100010;

int n, m, i, j, v[N], c[N], s, x, y, p, u;

vector<int> a[N];

int main() {
    fin >> n >> m >> s;
    for (i = 1; i <= m; ++i) {
        fin >> x >> y;
        a[x].push_back(y);
    }
    p = 1;
    u = 1;
    c[1] = s;
    v[s] = 1;
    while (p <= u) {
        for (i = 0; i < a[c[p]].size(); ++i)
            if (v[a[c[p]][i]] == 0) {
                v[a[c[p]][i]] = v[c[p]] + 1;
                c[++u] = a[c[p]][i];
            }
        p++;
    }
    for (i = 1; i <= n; ++i)
        fout << v[i] - 1 << ' ';
    return 0;
}