Pagini recente » Cod sursa (job #1305499) | Cod sursa (job #1711010) | Cod sursa (job #1832633) | Cod sursa (job #1597111) | Cod sursa (job #3237540)
#include <bits/stdc++.h>
using namespace std;
ifstream fin( "bfs.in" );
ofstream fout( "bfs.out" );
const int DIM = 1e5 + 1;
vector<int> G[DIM];
int dist[DIM];
bool viz[DIM];
int main() {
ios_base::sync_with_stdio(0);
fin.tie(0);
int n, m, s, u, v;
fin >> n >> m >> s;
while ( m-- ) {
fin >> u >> v;
G[u].push_back(v);
}
queue<int> q;
q.push(s);
dist[s] = 0;
viz[s] = true;
while ( !q.empty() ) {
u = q.front();
q.pop();
for ( auto v : G[u] ) {
if ( !viz[v] ) {
dist[v] = dist[u] + 1;
q.push(v);
viz[v] = true;
}
}
}
for ( int i = 1; i <= n; ++i ) {
fout << (i != s && dist[i] == 0 ? -1 : dist[i]) << " ";
}
fin.close();
fout.close();
return 0;
}