Pagini recente » Cod sursa (job #1665959) | Cod sursa (job #3183798) | Cod sursa (job #2158234) | Cod sursa (job #1675300) | Cod sursa (job #2371290)
//#include "pch.h"
#include <iostream>
#include <fstream>
#include <queue>
#include <list>
#include <vector>
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
int n, m, S;
const auto NMAX = 100005;
vector<int> G[100005];
queue<int> coada;
int viz[100005],cost[100005];
int main()
{
fin >> n >> m >> S;
int i, j;
while (fin >> i >> j)
G[i].push_back(j);
coada.push(S);
cost[S] = 0;
while (!coada.empty())
{
int nod = coada.front();
viz[nod] = 1;
for (auto k : G[nod])
if(!viz[k] ){
coada.push(k);
//if(cost[k]>cost[nod]+1)
cost[k] = cost[nod] + 1;
viz[k] = 1;
}
coada.pop();
}
for (int i = 1; i <= n; i++)
if (cost[i] == 0 and i != S)
fout << -1 <<" ";
else
fout << cost[i] <<" ";
return 0;
}