Pagini recente » Cod sursa (job #659952) | Cod sursa (job #668802) | Cod sursa (job #2129048) | Cod sursa (job #265427) | Cod sursa (job #660593)
Cod sursa(job #660593)
#include<fstream>
#define Nmax 1001
using namespace std;
long long v[Nmax][Nmax], n, m, i, start, x, y;
long long viz[Nmax], cost[Nmax], C[Nmax];
ifstream fin("bfs.in");
ofstream fout("bfs.out");
void BFS()
{
int ultim, prim;
ultim=prim=0;
C[0]=start;
viz[start]=1;
while(prim<=ultim)
{
x=C[prim++];
for(i=1;i<=v[x][0];i++)
if(!viz[v[x][i]])
{
viz[v[x][i]]=1;
C[++ultim]=v[x][i];
cost[v[x][i]]=cost[x]+1;
}
}
}
int main()
{
fin>>n>>m>>start;
for(i=1;i<=m;i++)
{
fin>>x>>y;
v[x][++v[x][0]]=y;
}
BFS();
for(i=1;i<=n;i++)
if(cost[i]==0 && i!=start)
fout<<-1<<' ';
else
fout<<cost[i]<<' ';
fout<<'\n';
fin.close();
fout.close();
return 0;
}