Cod sursa(job #1923024)

Utilizator Constantin.Dragancea Constantin Constantin. Data 10 martie 2017 20:18:47
Problema BFS - Parcurgere in latime Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <bits/stdc++.h>
using  namespace std;
#define pb push_back

vector <int> V[100010];
int n,m,x,y,s,w,A[100010];
bool u[100010];
queue <int> Q;

int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    ifstream cin ("bfs.in");
    ofstream cout ("bfs.out");
    cin>>n>>m>>s;
    for (int i=1; i<=m; i++){
        cin>>x>>y;
        V[x].pb(y);
    }
    u[s]=true; x=s;
    Q.push(s);
    while (!Q.empty()){
        x=Q.front();
        Q.pop();
        u[x]=true;
        for (int i=0; i<V[x].size(); i++){
            if (!u[V[x][i]]){
                Q.push(V[x][i]);
                A[V[x][i]]=A[x]+1;
            }
        }
    }
    for (int i=1; i<=n; i++) cout<<(i==s?0:(A[i]==0?-1:A[i]))<<" ";
    return 0;
}