Pagini recente » Cod sursa (job #1241472) | Cod sursa (job #1938794) | Cod sursa (job #1268131) | Cod sursa (job #1330213) | Cod sursa (job #2667163)
#include <iostream>
#include <vector>
#include <fstream>
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
bool vizitat[100001];
int n, m, s, distanta[100001];
vector<int> muchii_din[100001];
void citire() {
f>>n>>m>>s;
int a, b;
for(int i=0; i<m; i++) {
f>>a>>b;
muchii_din[a].push_back(b);
}
}
void bfs(int i, int contor) {
//cout<<i<<": ";
vizitat[i] = 1;
distanta[i] = contor;
for(int j : muchii_din[i]) {
//cout<<" _"<<j<<"_ ";
if (vizitat[j] == 0) {
//cout << "A" <<endl;
bfs(j, contor + 1);
//cout<<endl<<i<<": ";
}
}
}
int main() {
citire();
f.close();
bfs(s, 1);
for(int i=1; i<=n; i++)
g<<distanta[i]-1<<' ';
g.close();
}