Pagini recente » Cod sursa (job #1725628) | Cod sursa (job #834689) | Cod sursa (job #937800) | Cod sursa (job #795230) | Cod sursa (job #3040584)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
int n,m=0,start,x,y;
int a[1001][1001];
int o[1001];
int v[1001];
int d[1001];
void BFS(int start){
int st=1,dr=1;
v[start]=1;
o[dr]=start;
d[start]=0;
while(st<=dr){
int k=o[st];
for(int i=1;i<=n;++i){
if(v[i]==0 && a[k][i]==1){
v[i]=1;
dr++;
o[dr]=i;
d[i]=d[k]+1;
}
}
st++;
}
}
int main()
{
fin>>n>>m>>start;
while(fin>>x>>y){
a[x][y]=1;
}
for(int i=1;i<=n;++i){
d[i]=-1;
}
BFS(start);
for(int i=1;i<=n;++i){
fout<<d[i]<<" ";
}
}