Pagini recente » Cod sursa (job #2265857) | Cod sursa (job #956789) | Cod sursa (job #1058399) | Cod sursa (job #476683) | Cod sursa (job #2371000)
#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;
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);
while (!coada.empty())
{
int nod = coada.front();
viz[nod] = 1;
for (auto k : G[nod])
if (!viz[k]) {
coada.push(k);
cost[k]=cost[nod]+1;
//viz[k] = viz[nod] + 1;
}
coada.pop();
}
for (int i = 1; i <= n; i++)
if (cost[i] == 0 and i != S)
fout << -1 <<" ";
else
fout << cost[i] <<" ";
}