Pagini recente » Cod sursa (job #2788188) | Cod sursa (job #889811) | Cod sursa (job #1403270) | Cod sursa (job #2307911) | Cod sursa (job #3151037)
#include <fstream>
#include <vector>
using namespace std;
ifstream cin("bfs.in");
ofstream cout("bfs.out");
struct ura
{
vector <int> v;
}g[100001];
int vf[100001],t[100001];
int main()
{
int n,m,s,i,x,y,j,k;
cin>>n>>m>>s;
for(i=1;i<=m;i++)
{
cin>>x>>y;
g[x].v.push_back(y);
}
t[1]=s;
vf[s]=1;
for(i=1,j=1;i<=j;i++)
{
for(k=0;k<g[t[i]].v.size();k++)
if(vf[g[t[i]].v[k]]==0)
{
vf[g[t[i]].v[k]]=vf[t[i]]+1;
j++;
t[j]=g[t[i]].v[k];
}
}
for(i=1;i<=n;i++)
if(vf[i]==0)
cout<<-1<<" ";
else
cout<<vf[i]-1<<" ";
return 0;
}