Pagini recente » Cod sursa (job #2923702) | Cod sursa (job #2754379) | Cod sursa (job #3271637) | Cod sursa (job #2274756) | Cod sursa (job #2947613)
#include <iostream>
#include <fstream>
#include <deque>
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
int a[1000][1000], viz[1000], dist[1000];
deque<int> coada;
int main()
{
int i, n, m, s, nod;
fin>>n>>m>>s;
int x, y;
for (i=1; i<=m; i++)
{
fin>>x>>y;
a[x][y]=1;
}
coada.push_back(s);
viz[s]=1;
while (!coada.empty())
{
nod=coada.front();
coada.pop_front();
for (i=1; i<=n; i++)
{
if (a[nod][i]==1)
{
if (viz[i]==0)
{
coada.push_back(i);
dist[i]=dist[nod]+1;
viz[i]=1;
}
}
}
}
for (i=1; i<=n; i++)
{
if (i!=s && dist[i]==0)
fout<<-1<<' ';
else
fout<<dist[i]<<' ';
}
return 0;
}