Pagini recente » Cod sursa (job #3127153) | Cod sursa (job #1151677) | Cod sursa (job #1944581) | Cod sursa (job #1943667) | Cod sursa (job #1740598)
#include <iostream>
#include <fstream>
using namespace std;
int viz[1001],n,m,p,a[1001][1001],c[1001],d[1001];
void bfs(int x)
{
int prim,ultim,i;
prim=ultim=1;
viz[x]=1;
c[1]=x;
while(prim<=ultim)
{
x=c[prim];
for(i=1;i<=n;i++)
{
if(viz[i]==0 && a[x][i]==1)
{
ultim++;
c[ultim]=i;
d[i]=d[x]+1;
viz[i]=1;
}
}
prim++;
}
}
int main()
{
int i,x,y;
ifstream f("bfs.in");
ofstream g("bfs.out");
f>>n>>m>>p;
for(i=1;i<=m;i++)
{
f>>x>>y;
if(x!=y)
{
a[x][y]=1;
}
}
bfs(p);
for(i=1;i<=n;i++)
{
if(i==p)
{
g<<0<<" ";
}
else
{
if(d[i]==0)
{
g<<-1<<" ";
}
else
{
g<<d[i]<<" ";
}
}
}
return 0;
}