Cod sursa(job #2285621)

Utilizator HedeaMihneAHedea Mihnea HedeaMihneA Data 18 noiembrie 2018 20:27:21
Problema BFS - Parcurgere in latime Scor 10
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;
}