Pagini recente » Cod sursa (job #1360840) | Cod sursa (job #25743) | Cod sursa (job #2797744) | Cod sursa (job #3199751) | Cod sursa (job #1650969)
#include <fstream>
using namespace std;
ifstream fin ("bfs.in");
ofstream fout ("bfs.out");
long n,m,R,x,y,dist[44000];
bool a[44000][44000];
void BFS (int R)
{
for(int i=1;i<=n;i++)
if(a[R][i])
{
if(dist[i]>dist[R]+1 || !dist[i]) dist[i]=dist[R]+1;
}
}
int main()
{
fin>>n>>m>>R;
for(long i=1;i<=m;i++) {fin>>x>>y;a[x][y]=true;}
BFS(R);
for(int i=1;i<=n;i++) if(dist[i]==0) dist[i]=-1;
dist[R]=0;
for(int i=1;i<=n;i++) fout<<dist[i]<<' ';
return 0;
}