Cod sursa(job #1165566)

Utilizator andreiiiiPopa Andrei andreiiii Data 2 aprilie 2014 19:15:03
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <algorithm>
#include <cstdio>
#include <vector>
#include <queue>

using namespace std;

const int N=100005;

vector <int> G[N];
int d[N];
queue <int> Q;

int main()
{
    freopen("bfs.in", "r", stdin);
    freopen("bfs.out", "w", stdout);
    int n, m, S, i, x, y;
    scanf("%d%d%d", &n, &m, &S);
    while(m--)
    {
        scanf("%d%d", &x, &y);
        G[x].push_back(y);
    }
    d[S]=1;
    for(Q.push(S);!Q.empty();Q.pop())
    {
        x=Q.front();
        for(auto p: G[x])
        {
            if(!d[p])
            {
                d[p]=d[x]+1;
                Q.push(p);
            }
        }
    }
    for(i=1;i<=n;i++) printf("%d ", d[i]-1);
}