Cod sursa(job #2282205)

Utilizator Vlad3108Tir Vlad Ioan Vlad3108 Data 13 noiembrie 2018 14:12:00
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.73 kb
#include <bits/stdc++.h>
using namespace std;
vector<int> E[100005];
int D[100005];
void BFS(int k){
    queue<int> Q;
    Q.push(k);
    D[k]=0;
    while(!Q.empty()){
        int X=Q.front();
        for(auto it : E[X])
            if(D[it]==-1){
                D[it]=D[X]+1;
                Q.push(it);
            }
        Q.pop();
    }
}
int main(){
    freopen("bfs.in","r",stdin);
    freopen("bfs.out","w",stdout);
    int n,m,s;
    scanf("%d %d %d",&n,&m,&s);
    for(int i=1;i<=n;++i)
        D[i]=-1;
    for(int i=1;i<=m;++i){
        int st,dr;
        scanf("%d %d",&st,&dr);
        E[st].push_back(dr);
    }
    BFS(s);
    for(int i=1;i<=n;++i)
        printf("%d ",D[i]);
    return 0;
}