Pagini recente » Cod sursa (job #136287) | Cod sursa (job #3271003) | Cod sursa (job #1341588) | Cod sursa (job #2678138) | Cod sursa (job #1865115)
#include <fstream>
#include <vector>
#define DEF 100001
using namespace std;
ifstream fin ("bfs.in");
ofstream fout ("bfs.out");
int n, m, nod_X, x, y;
vector <int> L[DEF];
int bfs (int nod_st, int nod_fin) {
if (nod_st == nod_fin)
return 0;
int u = 1, p = 1, v[DEF], first, vecin, c[DEF][2];
for (int i = 1; i <= n; i++)
v[i] = 0;
c[1][0] = nod_st;
c[1][1] = 0;
v[nod_st] = 1;
while (p <= n) {
first = c[p][0];
for (int i = 0; i < L[first].size (); i++) {
vecin = L[first][i];
if (v[vecin] == 0) {
u++;
v[vecin] = 1;
c[u][0] = vecin;
c[u][1] = c[p][1] + 1;
if (vecin == nod_fin) {
return c[u][1];
}
}
}
p++;
}
return -1;
}
int main () {
fin >> n >> m >> nod_X;
for (int i = 1; i <= m; i++) {
fin >> x >> y;
L[x].push_back (y);
}
for (int i = 1; i <= n; i++) {
fout << bfs (nod_X, i) << " ";
}
}