Pagini recente » Cod sursa (job #622444) | Cod sursa (job #2483381) | Cod sursa (job #2656049) | Cod sursa (job #2824590) | Cod sursa (job #2795786)
#include <fstream>
#include <vector>
#include <deque>
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
int n, m, s;
void bfs(int start, vector<vector<int> > mat) {
deque<int> coada;
vector<int> viz(n+1 , -1);
viz[start] = 0;
coada.push_back(start);
while (coada.empty() == false) {
for (auto x:mat[coada[0]]) {
if (viz[x]==-1) {
coada.push_back(x);
viz[x] = viz[coada[0]]+1;
}
}
coada.pop_front();
}
for(int i = 1 ; i < n+1 ; ++i)
g<<viz[i]<<" ";
}
int main() {
f >> n >> m >> s;
vector<vector<int> > mat(n + 1);
for (int i = 0; i < m; ++i) {
int a, b;
f >> a >> b;
mat[a].push_back(b);
}
bfs(s, mat);
return 0;
}