Pagini recente » Cod sursa (job #2602123) | Cod sursa (job #3159355) | Cod sursa (job #2664550) | Cod sursa (job #2338154) | Cod sursa (job #660595)
Cod sursa(job #660595)
#include<fstream>
#define Nmax 10001
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;
}