Pagini recente » Cod sursa (job #1587941) | Cod sursa (job #2262885) | Cod sursa (job #955943) | Cod sursa (job #1580008) | Cod sursa (job #1217029)
#include<fstream>
#include<queue>
#include<vector>
#include<algorithm>
#define MAXN 100005
#define pb push_back
using namespace std;
ifstream cin("bfs.in");
ofstream cout("bfs.out");
int N,M,Cost[MAXN],S;
vector<int> G[MAXN];
queue<int> q;
int main() {
int i,x,y;
cin>>N>>M>>S;
memset(Cost,-1,sizeof(Cost));
for(i=1;i<=M;i++)
cin>>x>>y ,G[x].pb(y);
q.push(S);
Cost[S]=0;
while(q.size()) {
x=q.front();
q.pop();
for(i=0; i<G[x].size(); i++)
if(Cost[G[x][i]]==-1) {
q.push(G[x][i]);
Cost[G[x][i]]=Cost[x]+1; }
}
for(i=1;i<=N;i++)
cout<<Cost[i]<<" ";
return 0;
}