Pagini recente » Cod sursa (job #2323335) | Cod sursa (job #584374) | Cod sursa (job #2675919) | Cod sursa (job #2375841) | Cod sursa (job #960256)
Cod sursa(job #960256)
#include <cstdlib>
#include <fstream>
#include <iostream>
#include <queue>
#include <vector>
using namespace std;
vector <int> bfs (const vector <vector <int>> &G, int start)
{
int n = G.size()-1;
queue <int> Q;
vector <int> D (n+1, -1);
Q.push (start);
D[start] = 0;
while (!Q.empty())
{
int v = Q.front();
Q.pop();
for (auto &u : G[v])
if (D[u] == -1)
{
D[u] = D[v] + 1;
Q.push (u);
}
}
return D;
}
int main()
{
ifstream fin ("bfs.in");
ofstream fout ("bfs.out");
int n, m, s;
fin >> n >> m >> s;
vector <vector <int>> G(n+1, vector <int> ());
for (; m; --m)
{
int x, y;
fin >> x >> y;
G[x].push_back(y);
}
vector <int> D = bfs (G, s);
for (int i = 1; i <= n; ++i)
fout << D[i] << ' ';
fout << endl;
fout.close();
return EXIT_SUCCESS;
}