Pagini recente » Cod sursa (job #1484407) | Cod sursa (job #3281001) | Cod sursa (job #570478) | Cod sursa (job #2381460) | Cod sursa (job #2924592)
#include <iostream>
#include <fstream>
using namespace std;
int n, a[100001][100001], v[100001], c[100001], nrp[100001];
ofstream g("bfs.out");
void bf (int s)
{
int p = 1, u = 1, i, nr = 0;
c[1] = s;
for(i = 1; i <= n; i++) nrp[i] = -1;
nrp[s] = 0;
v[s] = 1;
while (p <= u)
{
s = c[p];
nr++;
for (i = 1; i <= n; i++)
if (a[s][i] == 1 && v[i] == 0)
{
v[i] = 1;
c[++u] = i;
nrp[i] = nrp[s] + 1;
}
p++;
}
for(i = 1; i <= n; i++)
g << nrp[i] << ' ';
}
int main()
{int m, s, i, x, y;
ifstream f("bfs.in");
f >> n >> m >> s;
for(i = 1; i <= m; i++)
{
f >> x >> y;
a[x][y] = 1;
}
bf(s);
return 0;
}