Pagini recente » Cod sursa (job #1219838) | Cod sursa (job #786330) | Cod sursa (job #1997049) | Cod sursa (job #1772988) | Cod sursa (job #2800847)
#include <bits/stdc++.h>
using namespace std;
#define NMAX 100001
ifstream fin( "bfs.in" );
ofstream fout( "bfs.out" );
vector <int> edges[NMAX];
queue <int> q;
int dist[NMAX];
void bfs( int s ) {
dist[s] = 1;
q.push(s);
//for( auto i = q.front(); i < q.back(); i++ )
// cout << q[i] << " ";
while( !q.empty() ) {
int aux = q.front();
queue <int> g = q;
while ( !g.empty() ) {
cout << g.front() << " ";
g.pop();
}
cout << '\n';
q.pop();
for( auto i : edges[aux] ) {
if( !dist[i] ) {
dist[i] = dist[aux] + 1;
q.push(i);
}
}
}
}
int main() {
int n, m, a, b, i, sursa;
fin >> n >> m >> sursa;
for( i = 0; i < m; i++ ) {
fin >> a >> b;
edges[a].push_back(b);
}
bfs( sursa );
for( i = 0; i < n; i++ )
fout << dist[i+1] - 1 << " ";
return 0;
}