Pagini recente » Cod sursa (job #2211461) | Cod sursa (job #2909446) | Cod sursa (job #1457722) | Romanian IOI Medalists: Careers | Cod sursa (job #2638277)
#include <fstream>
#include <vector>
#include <queue>
#define MAXN 100005
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
queue <int> Q;
vector <int> graph[MAXN];
int viz[MAXN];
int N, M, start, x, y;
void BFS(int start)
{
int z;
Q.push(start);
viz[start] = 1;
while (!Q.empty())
{
z = Q.front();
for (auto x:graph[z])
{
if (!viz[x])
{
viz[x] = viz[z] + 1;
Q.push(x);
}
}
Q.pop();
}
}
void Read()
{
f >> N >> M >> start;
for (int i = 1; i <= M; i++)
{
f >> x >> y;
graph[x].push_back(y);
}
BFS(start);
for (int i = 1; i <= N; i++)
{
g << viz[i] - 1 << " ";
}
}
int main ()
{
Read();
f.close();
g.close(); return 0;
}