Pagini recente » Cod sursa (job #3250328) | Cod sursa (job #1598853) | Cod sursa (job #2053274) | Cod sursa (job #1136731) | Cod sursa (job #2366021)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("bfs.in");
ofstream fout ("bfs.out");
const int Nmax = 100005;
vector < int > L[Nmax];
int n , m , N , d[Nmax];
queue < int > Q;
int main()
{
int x , y;
fin >> n >> m >> N;
for(int i = 1 ; i <= m ; i++)
fin >> x >> y , L[x].push_back(y);
Q.push(N);
while(!Q.empty())
{
x = Q.front();
Q.pop();
for(auto it : L[x])
if(!d[it] && it != N)
{
Q.push(it);
d[it] = d[x] + 1;
}
}
for(int i = 1 ; i <= n ; i++)
if(!d[i] && i != N)
fout << "-1 ";
else fout << d[i] << " ";
fout << "\n";
fin.close();
fout.close();
return 0;
}