Pagini recente » Cod sursa (job #2305640) | Cod sursa (job #2296168) | Cod sursa (job #842830) | Cod sursa (job #842836) | Cod sursa (job #2237982)
#include <bits/stdc++.h>
using namespace std;
int num_nodes;
int num_edges;
int start;
constexpr int not_visited=-1;
vector<vector <int>> adj(100001);
vector<int> dist(100001,not_visited);
int main() {
ifstream fin("bfs.in");
ofstream fout("bfs.out");
fin>>num_nodes>>num_edges>>start;
for(int i=1; i<=num_edges; i++) {
int src,dest;
fin>>src>>dest;
adj[src].push_back(dest);
}
queue <int> bfs;
bfs.push(start);
dist[start]=0;
while(!bfs.empty()) {
int current=bfs.front();
bfs.pop();
for(auto next:adj[current])
if(dist[next]==not_visited) {
bfs.push(next);
dist[next]=dist[current]+1;
}
}
for(int i=1; i<=num_nodes; i++)
fout<<dist[i]<<' ';
return 0;
}