Cod sursa(job #2276978)

Utilizator maria15Maria Dinca maria15 Data 5 noiembrie 2018 17:52:36
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.68 kb
#include <fstream>
#include <vector>

using namespace std;

int n, m, nod, crt, vec, a, b, i, j, c[100002], f[100002], p, u;
vector<int> v[100002];

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

int main(){
    fin>>n>>m>>nod;
    for(i=1;i<=m;i++){
        fin>>a>>b;
        v[a].push_back(b);
    }
    p = u = 1;
    c[1] = nod;
    f[nod] = 1;
    while(p<=u){
        crt = c[p];
        for(i=0;i<v[crt].size();i++){
            vec = v[crt][i];
            if(f[vec] == 0){
                f[vec] = f[crt] + 1;
                c[++u] = vec;
            }
        }
        p++;
    }
    for(i=1;i<=n;i++)
        fout<<f[i]-1<<" ";
    return 0;
}