Pagini recente » Cod sursa (job #2638046) | Cod sursa (job #1694618) | Cod sursa (job #2764207) | Cod sursa (job #1755474) | Cod sursa (job #1520856)
#include <fstream>
#include <vector>
#define Xp 100012
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
vector <int> A[Xp];
int n,m,s,i,j,nr,ult,x,y,Cost[Xp],Coada[Xp];
void bfs()
{
for(i=1;i<=n;++i) Cost[i]=-1;
Coada[++nr]=s;
Cost[s]=0;
for(i=1;i<=nr;++i)
for(ult=A[Coada[i]].size(),j=0;j<ult;++j)
if(Cost[A[Coada[i]][j]]==-1)
{
Cost[A[Coada[i]][j]]=Cost[Coada[i]]+1;
Coada[++nr]=A[Coada[i]][j];
}
}
int main()
{
f>>n>>m>>s;
for(i=1;i<=m;++i)
{
f>>x>>y;
A[x].push_back(y);
}
bfs();
for(i=1;i<=n;++i) g<<Cost[i]<<" ";
return 0;
}