Pagini recente » Cod sursa (job #1473403) | Cod sursa (job #2234369) | Cod sursa (job #1495771) | Cod sursa (job #2384389) | Cod sursa (job #3149094)
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream cin("bfs.in");
ofstream cout("bfs.out");
const int NMAX = 1e5;
vector<int> muchii[NMAX + 1];
int N, M, S, cost[NMAX + 1];
void Bfs(int node)
{
queue<int> q;
q.push(node);
while (!q.empty())
{
int nod = q.front();
q.pop();
for (int i = 0; i < muchii[nod].size(); i++)
{
if (cost[muchii[nod][i]] == 0)
{
cost[muchii[nod][i]] = cost[nod] + 1;
q.push(muchii[nod][i]);
}
}
}
}
int main()
{
cin >> N >> M >> S;
while (M--)
{
int sursa, destinatie;
cin >> sursa >> destinatie;
muchii[sursa].push_back(destinatie);
}
cost[S] = 1;
Bfs(S);
for (int i = 1; i <= N; i++)
cout << cost[i] - 1 << ' ';
}