Cod sursa(job #2013243)

Utilizator MihaelaCismaruMihaela Cismaru MihaelaCismaru Data 20 august 2017 21:14:48
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include<fstream>
#include<vector>
using namespace std;
ifstream in("bfs.in");
ofstream out("bfs.out");
int n,m,s,v[100001],d[100001],hz[100001],i,a,b,st,dr;
vector<int>h[100001];
int main(){
    in >> n >> m >> s;
    for( i = 1; i <= m; i ++ ){
        in >> a >> b;
        h[a].push_back(b);
    }
    v[1] = s;
    d[s] = 1;
    hz[s] = 1;
    for( st = 1, dr = 1; st <= dr; st ++ ){
        for( i = 0; i < h[v[st]].size(); i ++ ){
            if( hz[ h[v[st]][i]  ] == 0 ){
                dr++;
                v[dr] = h[v[st]][i];
                hz[ h[v[st]][i]  ] = 1;
                d[h[v[st]][i]] = d[v[st]] + 1;
            }
        }
    }

    for( i = 1; i <= n; i ++ ){
        out<<d[i]-1<<" ";
    }
    return 0;
}