Pagini recente » Cod sursa (job #643874) | Cod sursa (job #1903157) | Cod sursa (job #1598762) | Cod sursa (job #987830) | Cod sursa (job #3040594)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("bfs.in"); // conex si m=n-1
ofstream fout ("bfs.out");
int a[1001][1001];
int n,m,start,x,y;
int vizite[1001],orase[1001],distanta[1001];
void BFS(int start){
int st=1,dr=1;
vizite[start]=1;
distanta[start]=0;
orase[dr]=start;
while(st<=dr){
int city=orase[st];
for(int i=1;i<=n;i++){
if (vizite[i]==0 && a[city][i]==1){
vizite[i]=1;
dr++;
orase[dr]=i;
distanta[i]=distanta[city]+1;
}
}
st++;
}
}
int main()
{
fin>>n>>m>>start;
while(fin>>x>>y){
a[x][y]=1;
}
for(int i=1;i<=n;++i){
distanta[i]=-1;
}
BFS(start);
for(int i=1;i<=n;++i){
fout<<distanta[i]<<" ";
}
return 0;
}