Pagini recente » Cod sursa (job #1238692) | Cod sursa (job #1995483) | Cod sursa (job #2736157) | Cod sursa (job #3179928) | Cod sursa (job #2928733)
#include <fstream>
#include <vector>
#define N 100005
#include <queue>
#define v 2e9
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
int n, m, sursa, i, x , y;
vector <int> l[N], dist(N, 2e9);
queue <int> q;
void Citire(){
fin >> n >> m >> sursa;
for(i=1; i<=m; i++)
{
fin >> x >> y;
l[x].push_back(y);
}
}
void BFS(int node){
dist[node] = 0;
q.push(node);
while(q.empty() ==0 ){
int x = q.front();
q.pop();
for( auto &p : l[x])
if(dist[p] > dist[x] + 1)
{
dist[p] = 1 + dist[x];
q.push(p);
}
}
}
int main()
{
Citire();
BFS(sursa);
for(int i = 1; i <= n; i++)
if(dist[i] == 2e9) fout <<"-1" <<" ";
else
fout << dist[i] <<" ";
return 0;
}