Pagini recente » Cod sursa (job #724903) | Cod sursa (job #2398689)
#include <fstream>
#include <vector>
#include <deque>
#define NMAX 100000
using namespace std;
vector<int> g[NMAX + 1];
deque<int> q;
int cost[NMAX + 1];
bool viz[NMAX + 1];
int main() {
ifstream fin("bfs.in");
ofstream fout("bfs.out");
int n, m, i, a, b, source;
fin>>n>>m>>source;
for( i = 1; i <= m; i ++ ) {
fin>>a>>b;
g[a].push_back(b);
}
for( i = 1; i <= n; i ++ )
cost[i] = -1;
cost[source] = 0;
viz[source] = 1;
q.push_back(source);
while( !q.empty() ) {
int nod = q.front();
q.pop_front();
for( auto dest : g[nod] ) {
if( viz[dest] == 0 ) {
cost[dest] = cost[nod] + 1;
q.push_back(dest);
viz[dest] = 1;
}
}
}
for( i = 1; i <= n; i ++ )
fout<<cost[i]<<" ";
return 0;
}