Cod sursa(job #1942714)

Utilizator OnRealNOOrz Nichita OnRealNO Data 28 martie 2017 09:55:55
Problema BFS - Parcurgere in latime Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
int n,m,i,k,cost[100100];
vector<int> v[100100];
queue<int> q;
void bfs(int k){
    q.push(k);
    cost[k]=1;
    while (!q.empty()){
        int a=q.front();
        q.pop();
        for (int i=0;i<v[a].size();i++) if (!cost[v[a][i]]){
        	cost[v[a][i]]=cost[a]+1;
            q.push(v[a][i]);
        }
    }
}
int main() {
    fin >> n >> m >> k;
    for (int i=1;i<=m;i++){
        int a,b;
        fin >> a >> b;
        v[a].push_back(b);
    }
    bfs(k);
    for (int i=1;i<=n;i++) cout << cost[i]-1 << " ";
}