Pagini recente » Cod sursa (job #2575911) | Cod sursa (job #1339761) | Cod sursa (job #1042959) | Cod sursa (job #2805197) | Cod sursa (job #1192625)
#include <fstream>
#include <vector>
using namespace std;
ifstream in("bfs.in");
ofstream out("bfs.out");
int c[200001],viz[200001];
vector <int> v[200001];
int main()
{int u,p,i,n,x,m,a,b,j;
in>>n>>m>>x;
for(j=1;j<=m;j++)
{
in>>b>>a;
v[b].push_back(a);
}
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)
out<<-1<<" ";
else
out<<viz[i]-1<<" ";
out<<0<<" ";
for(i=x+1;i<=n;i++)
if(viz[i]==0)
out<<-1<<" ";
else
out<<viz[i]-1<<" ";
out<<'\n';
in.close();
out.close();
return 0;
}