Pagini recente » Cod sursa (job #1867292) | Cod sursa (job #2663607) | Cod sursa (job #2338607) | Cod sursa (job #2179641) | Cod sursa (job #1039508)
#include <fstream>
using namespace std;
#define maxim 100100
int a[maxim][maxim], viz[maxim];
int main()
{
fstream f("bfs.in", ios::in);
fstream g("bfs.out",ios::out);
int i, m, n, st, dr, nod, x, y, s, coad[maxim], dist[maxim];
f >> n >> m >> s;
for (i = 1; i <= m; i++)
{
f >> x >> y;
a[x][y] = 1;
}
st = 1;
dr = 1;
coad[st] = s;
viz[s] = 1;
dist[s] = 0;
while (st <= dr)
{
nod = coad[st];
st++;
for (i = 1; i <= n; i++)
if (a[nod][i] == 1 && viz[i] == 0)
{
coad[++dr] = i;
viz[i] = 1;
dist[i] = dist[nod] + 1;
}
}
for (i = 1; i <= n; i++)
if (dist[i] < 0)g << -1 << " ";
else g << dist[i] << " ";
return 0;
}