Pagini recente » Poliție | Cod sursa (job #2493791) | Benzina | Cod sursa (job #1175253) | Cod sursa (job #1838239)
#include <fstream>
#include <vector>
using namespace std;
ifstream cin("bfs.in");
ofstream cout("bfs.out");
#define INF 0x3f3f3f3f
#define MAXN 100005
vector<int> graf[MAXN];
int d[MAXN];
int n, m, start;
void bfs(int nod) {
for(int j=0; j<graf[nod].size(); j++) {
if( d[ graf[nod][j] ] > d[ nod ] + 1 ) {
d[ graf[nod][j] ] = d[ nod ] + 1;
bfs( graf[nod][j] );
}
}
}
int main() {
int i, x, y;
cin >> n >> m >> start;
for(i = 1; i <= m; i++) {
cin >> x >> y;
graf[x].push_back(y);
d[i] = INF;
}
d[start] = 0;
bfs(start);
for(i = 1 ; i <= n; i++) {
if( d[i] == INF )
cout<<"-1 ";
else
cout<<d[i]<<" ";
}
return 0;
}