Pagini recente » Cod sursa (job #2827488) | Cod sursa (job #1679033) | Cod sursa (job #2247548) | Cod sursa (job #3281619) | Cod sursa (job #1805954)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
int n, m, l, start;
int len[100], coada[100], cost[100];
vector <int> a[100];
int bfs(int nod){
int i, j;
for(int i=1; i<=n; ++i) cost[i] = -1;
l=1;
cost[nod] = 0;
coada[l] = nod;
for(int i=1; i<=l; ++i){
for(int j=0; j < len[coada[i]]; ++j){
if(cost[a[coada[i]][j]] == -1){
coada[++l] = a[coada[i]][j];
cost[coada[l]] = 1 + cost[coada[i]];
}
}
}
}
int main(){
f >> n >> m >> start;
for(int i=1; i<=m; ++i){
int x, y;
f >> x >> y;
a[x].push_back(y);
}
for(int i=1; i<=n; ++i){
len[i] = a[i].size();
}
bfs(start);
for(int i=1; i<=n; ++i){
g << cost[i] << ' ';
}
g << '\n';
}