Pagini recente » Cod sursa (job #3125168) | Cod sursa (job #3288281) | Cod sursa (job #1281982) | Cod sursa (job #142545) | Cod sursa (job #2870511)
#include <iostream>
#include <vector>
#include <unordered_map>
#include <queue>
#include <fstream>
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<int> graf[nr_noduri + 1];
for (int i = 1; i <= nr_muchii; i++)
{
int n1, n2;
fin >> 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++)
fout << visit[i] << " ";
return 0;
}