Pagini recente » Cod sursa (job #806169) | Cod sursa (job #38395) | Cod sursa (job #909768) | Cod sursa (job #3282177) | Cod sursa (job #2870505)
#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;
fscanf(fin, "%d %d", &n1, &n2);
graf[n1].push_back(n2);
}
for (int i = 1; i <= nr_noduri; i++)
visit[i] = -1;
queue<int>coada;
coada.push(start);
visit[start] = 0;
while (!coada.empty())
{
int nod = coada.front();
coada.pop();
for (int next:graf[nod])
if (visit[next]==-1)
{
visit[next] = visit[nod] + 1;
coada.push(next);
}
}
visit[start] = 0;
for (int i = 1; i <= nr_noduri; i++)
fprintf(fout, "%d ", visit[i]);
return 0;
}