Pagini recente » Cod sursa (job #1204804) | Cod sursa (job #508224) | Cod sursa (job #1819909) | Cod sursa (job #3157483) | Cod sursa (job #3128754)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
int n,m,s,xi[200001],v[200001],a[2001][2001],i,x,y;
void bfs(int start)
{
int i,k,st,dr,nr;
st=dr=1;
xi[1]=start;
v[start]=1;
while(st<=dr)
{
k=xi[st];
for(i=1;i<=n;i++)
if(v[i]==0 && a[k][i]==1)
{
v[i]=v[i-1]+1;
xi[++dr]=i;
}
st++;
}
for(i=1;i<=n;i++)
if(i==s)
g<<0<<" ";
else if(i!=s&&v[i]==0)
g<<-1<<" ";
else
g<<v[i]<<" ";
}
int main()
{
f>>n>>m>>s;
for(i=1;i<=m;i++)
{
f>>x>>y;
a[x][y]=1;
}
bfs(s);
return 0;
}