Cod sursa(job #943672)

Utilizator CosminRusuCosmin Rusu CosminRusu Data 26 aprilie 2013 08:55:52
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");

vector <int> G[100005], cost(100005, -1);
queue <int> Q;
int n, m, s;

int main()
{
    cin>>n>>m>>s;
    for(int i = 1 ; i  <= m ;++ i)
    {
        int x, y;
        cin>>x>>y;
        G[x].push_back(y);
    }
    cin.close();
    for(Q.push(s), cost[s]=0 ; !Q.empty() ; Q.pop() )
    {
        int nod = Q.front();
        for(int i = 0 ;  i < G[nod].size(); ++i)
            if(cost[G[nod][i]] == -1)
                cost[G[nod][i]]=cost[nod] + 1,
                Q.push( G[nod][i] );
    }
    for(int i = 1 ; i <= n ;++ i)
        cout<<cost[i]<<" ";
    cout.close();
    return 0;
}