Pagini recente » Cod sursa (job #1194259) | Cod sursa (job #2780925) | Cod sursa (job #65444) | Cod sursa (job #2858202) | Cod sursa (job #2664246)
#include <bits/stdc++.h>
using namespace std;
ifstream fin( "bfs.in" );
ofstream fout( "bfs.out" );
const int NMAX = 100005;
int N, M, S;
vector <int> Ad[NMAX];
int d[NMAX];
deque <int> Q;
void Read() {
fin >> N >> M >> S;
for( int i = 1; i <= M; ++i ) {
int a, b;
fin >> a >> b;
Ad[a].push_back( b );
}
}
void Do() {
Q.push_back( S );
d[S] = 1;
while( !Q.empty() ) {
int w, u = Q.front();
Q.pop_front();
for( int i = 0; i < Ad[u].size(); ++i ) {
w = Ad[u][i];
if( d[w] == 0 ) {
d[w] = d[u] + 1;
Q.push_back( w );
}
}
}
for( int i = 1; i <= N; ++i )
fout << d[i] - 1 << ' ';
}
int main()
{
Read();
Do();
return 0;
}