Pagini recente » Cod sursa (job #1773428) | Cod sursa (job #1490352) | Cod sursa (job #1587440) | Cod sursa (job #2022840) | Cod sursa (job #1025564)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
int mat[1002][1002],minim[1002]={0},verif[1002]={0},n,m,k;
int main()
{
fin>>n>>m>>k;
int a,b;
for(int i=0;i<m;i++){
fin>>a>>b;
mat[a][b]=1;
}
int coada[1002],st=0,dr=0;
coada[dr]=k;dr++;verif[k]=1;
while(st<dr){
for(int i=1;i<=n;i++)
if(mat[coada[st]][i]==1 && verif[i]==0){
minim[i]=minim[coada[st]]+1;
coada[dr]=i;dr++;
verif[i]=1;
}
st++;
}
for(int i=1;i<=n;i++)
if(minim[i]==0)
minim[i]=-1;
minim[k]=0;
for(int i=1;i<=n;i++)
fout<<minim[i]<<" ";
return 0;
}