Pagini recente » Cod sursa (job #1055572) | Cod sursa (job #2718173) | Cod sursa (job #367494) | Cod sursa (job #3195810) | Cod sursa (job #2549742)
#include <fstream>
#include <vector>
using namespace std;
ifstream cin("bfs.in");
ofstream cout("bfs.out");
struct ura{
int cost,parc;
};
int q[100001];
vector<int> v[100001];
ura d[100001];
void bfs(int a){
int i,to,from,nod,x;
q[1]=a;
from=to=1;
while(from<=to){
x=q[from];
for(i=0;i<v[x].size();i++){
nod=v[x][i];
if(d[nod].parc==0){
d[nod].cost=d[x].cost+1;
d[nod].parc=1;
q[++to]=nod;
}
}
++from;
}
}
int main()
{
int n,m,nod,i,x,y;
cin>>n>>m>>nod;
for(i=1;i<=m;i++){
cin>>x>>y;
if(x!=y)
v[x].push_back(y);
}
for(i=1;i<=n;i++)
d[i].cost=-1;
d[nod].cost=0;
d[nod].parc=1;
bfs(nod);
for(i=1;i<=n;i++)
cout<<d[i].cost<<" ";
return 0;
}