Pagini recente » Profil andrici_cezar | Cod sursa (job #1660014) | Cod sursa (job #2021339) | Cod sursa (job #2806468) | Cod sursa (job #1191756)
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
int c2[100000],c[100001],viz[100001],zi,u,p,i,x,y,k,n,X,m;
vector <int> v[100001];
int main()
{
fin>>n>>m>>X;
for(i=1;i<=m;i++)
{
fin>>x>>y;
v[x].push_back(y);
}
p=u=1;
c[u]=X;
viz[X]=1;
while(u<=p)
{
for(i=0;i<v[c[u]].size();i++)
{
if(!viz[v[c[u]][i]])
{
viz[v[c[u]][i]]=viz[c[u]]+1;
p++;
c[p]=v[c[u]][i];
}
}
u++;
}
for(i=1;i<X;i++)
if(viz[i]==0)
fout<<-1<<" ";
else
fout<<viz[i]-1<<" ";
fout<<0<<" ";
for(i=X+1;i<=n;i++)
if(viz[i]==0)
fout<<-1<<" ";
else
fout<<viz[i]-1<<" ";
return 0;
}