Pagini recente » Cod sursa (job #2657480) | Cod sursa (job #1365451) | Cod sursa (job #1898789) | Cod sursa (job #2226) | Cod sursa (job #2635642)
#include<bits/stdc++.h>
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
int n,m,start;
vector<int>v[100005];
int coada[100005],ans[100005],viz[100005];
void BFS(int nod)
{
int i,st=1,dr=1;
coada[1]=nod;
int nr=1;
viz[nod]=1;
while(st<=dr)
{
int val=coada[st];
viz[val]=1;
for(i=0;i<v[val].size();i++)
{
if(viz[v[val][i]]==0&&ans[v[val][i]]==0)
{
coada[++dr]=v[val][i];
ans[v[val][i]]=ans[val]+1;
}
}
st++;
}
for(i=1;i<=n;i++)
{
if(ans[i]==0&&i!=start)
fout<<-1<<" ";
else
fout<<ans[i]<<" ";
}
}
int main()
{
int i,x,y;
fin>>n>>m>>start;
for(i=1;i<=m;i++)
{
fin>>x>>y;
v[x].push_back(y);
}
BFS(start);
return 0;
}