Pagini recente » Cod sursa (job #1031103) | Cod sursa (job #806637) | Cod sursa (job #2755254) | Cod sursa (job #147602) | Cod sursa (job #2649895)
#include <fstream>
#include <vector>
#define dim 100007
using namespace std;
ifstream fin ("bfs.in");
ofstream fout ("bfs.out");
int n, m, x, i, j, nod, vecin, c[dim], p, u, v[dim], f[dim];
vector <int> L[dim];
int main()
{
fin>>n>>m>>x;
for (int t=1; t<=m; t++)
{
fin>>i>>j;
L[i].push_back(j);
}
c[1]=x;
p=u=1;
f[x]=1;
while (p<=u)
{
nod=c[p];
for (i=0; i<L[nod].size(); i++)
{
vecin=L[nod][i];
if (f[vecin]==0)
{
v[vecin]=v[nod]+1;
c[++u]=vecin;
f[vecin]=1;
}
}
p++;
}
for (i=1; i<=n; i++)
if (i!=x && v[i]==0)
fout<<"-1"<<" ";
else
fout<<v[i]<<" ";
}