Pagini recente » Cod sursa (job #2942994) | Cod sursa (job #456133) | Cod sursa (job #1530257) | Cod sursa (job #3191781) | Cod sursa (job #2870454)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
int main()
{
int nr_muchii, nr_noduri, start;
unordered_map<int, int> visit;
fin >> nr_noduri >> nr_muchii >> start;
vector<vector<int>> graf(nr_noduri + 1);
for (int i = 1; i <= nr_muchii; i++)
{
int n1, n2;
fin >> n1 >> n2;
graf[n1].push_back(n2);
}
queue<int>coada;
coada.push(start);
visit[start] = 1;
while (!coada.empty())
{
int nod = coada.front();
coada.pop();
for (int next:graf[nod])
if (visit[next]==0)
{
visit[next] = visit[nod] + 1;
coada.push(next);
}
}
visit[start] = 0;
for (int i = 1; i <= nr_noduri; i++)
{
if (visit[i] == 0 && i != start)
visit[i] = -1;
else if (i != start)
visit[i]--;
fout << visit[i] << " ";
}
return 0;
}