Pagini recente » Cod sursa (job #3180238) | Cod sursa (job #894548) | Cod sursa (job #2600065) | Cod sursa (job #1323917) | Cod sursa (job #2566700)
#include <bits/stdc++.h>
using namespace std;
const int NMAX = 100002;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
int N, M, V;
vector < int > Ad[NMAX];
queue < int > Q;
int D[NMAX], x, y;
void BFS( int V )
{
Q.push( V );
while( Q.size() )
{
int nod = Q.front();
Q.pop();
for( int i = 0; i < Ad[nod].size(); ++i )
{
int w = Ad[nod][i];
if( !D[w] && w != V )
{
D[w] = D[nod]+1;
Q.push( w );
}
}
}
for( int i = 1; i <= N; ++i )
if( i != V && D[i] == 0 ) fout << -1 << ' ';
else fout << D[i] << ' ';
}
void Read()
{
fin >> N >> M >> V;
for( int i = 1; i <= M; ++i )
{
fin >> x >> y;
Ad[x].push_back( y );
//Ad[y].push_back( x );
}
BFS( V );
}
int main()
{
Read();
return 0;
}