Pagini recente » Cod sursa (job #2881583) | Cod sursa (job #2262961) | Cod sursa (job #2903121) | Cod sursa (job #3175149) | Cod sursa (job #3196877)
#include<bits/stdc++.h>
using namespace std;
vector<int> adj[100001];
int dist[100001];
void bfs(int s) {
queue<int> q;
q.push(s);
dist[s] = 0;
while(!q.empty()) {
int node = q.front();
q.pop();
for(int i : adj[node]) {
if(dist[i] == -1) {
dist[i] = dist[node] + 1;
q.push(i);
}
}
}
}
int main() {
int n, m, s;
cin >> n >> m >> s;
for(int i = 1; i <= m; i++) {
int a, b;
cin >> a >> b;
adj[a].push_back(b);
}
for(int i = 1; i <= n; i++)
dist[i] = -1;
bfs(s);
for(int i = 1; i <= n; i++)
cout << dist[i] << " ";
return 0;
}