Cod sursa(job #1048570)

Utilizator Iustin_BulimarFMI Iustin Bulimar Iustin_Bulimar Data 6 decembrie 2013 01:19:48
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream cin("bfs.in");
ofstream cout("bfs.out");

int n, m, s, i, x[100001], u, v;
vector<int> a[100001];

void bfs(int s)
{
    queue<int> q;
    q.push(s);
    x[s]=0;
    while(!q.empty())
    {
        for(i=0; i<a[q.front()].size(); i++)
            if(x[ a[q.front()][i] ]==-1)
            {
                q.push(a[q.front()][i]);
                x[a[q.front()][i]]=x[q.front()]+1;
            }
        q.pop();
    }
}

int main()
{
    cin>>n>>m>>s;
    for(i=1; i<=n; i++) x[i]=-1;
    for(i=1; i<=m; i++)
    {
        cin>>u>>v;
        a[u].push_back(v);
    }
    bfs(s);
    for(i=1; i<=n; i++) cout<<x[i]<<" ";
    return 0;
}