Cod sursa(job #2230247)

Utilizator rnqftwcalina florin daniel rnqftw Data 9 august 2018 15:23:24
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.85 kb
#include<bits/stdc++.h>

using namespace std;

vector<int> graph[100005];
queue<int> q;
int visited[100005], d[100005];
int n , m  , s;
void dfs(int nod){
    q.push(nod);
    d[nod] = 0 ;
    visited[nod] = 1 ;
    while(!q.empty()){
        int k = q.front();
        q.pop();
        for(auto it : graph[k]){
            if(visited[it] == 0){
                q.push(it);
                d[it] = d[k] + 1 ;
                visited[it] = 1;
            }

        }
    }
}
int main(){
    ifstream in("bfs.in");
    ofstream out("bfs.out");
    in >> n >> m >> s;
    for(int i = 0 ; i < m ; i ++ ){
        int x , y ;
        in >> x >> y ;
        graph[x].push_back(y);
    }
    dfs(s);

    for(int i = 1 ; i <= n ; i ++ )
        if(d[i] == 0 && i != s)
            out << -1 << " ";
        else out << d[i]<<" ";
}