Cod sursa(job #2255683)

Utilizator radugheoRadu Mihai Gheorghe radugheo Data 7 octombrie 2018 14:05:12
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include <fstream>
#include <vector>
#define DIM 100005

using namespace std;

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

vector <int> L[DIM];

int n, m, s, t, x, y, p, u, nod, k, i, c[DIM], l[DIM], v[DIM];

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