Pagini recente » Cod sursa (job #3269911) | Cod sursa (job #586120) | Cod sursa (job #2977160) | Cod sursa (job #387695) | Cod sursa (job #2986981)
#include <fstream>
#include <queue>
#include <vector>
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
const int NMAX = 100000;
int N, M, src, x, y;
queue <int> q;
vector <int> g[NMAX + 5];
int rez[NMAX + 5];
bool visited[NMAX + 5];
int main()
{
fin >> N >> M >> src;
for(int i = 1; i <= M; i++)
{
fin >> x >> y;
g[x].push_back(y);
}
q.push(src);
visited[src] = 1;
while(!q.empty())
{
int nod = q.front();
visited[nod] = 1;
q.pop();
for(auto y : g[nod])
{
if(!visited[y])
{
visited[y] = 1;
rez[y] = rez[nod] + 1;
q.push(y);
}
}
}
for(int i = 1; i <= N; i++)
{
if(visited[i])
fout << rez[i] << " ";
else if(!visited[i])
fout << "-1 ";
}
fin.close();
fout.close();
return 0;
}