Pagini recente » Cod sursa (job #1562938) | Cod sursa (job #1789985) | Cod sursa (job #3150725) | Cod sursa (job #2801969) | Cod sursa (job #2870530)
#include <iostream>
#include <vector>
#include <unordered_map>
#include <queue>
#include <fstream>
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
int nr_muchii, nr_noduri, start;
int visit[100001];
vector<int> graf[100001];
queue<int>coada;
int main()
{
fin >> nr_noduri >> nr_muchii >> start;
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;
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;
}