Pagini recente » Cod sursa (job #1423564) | Cod sursa (job #2265637) | Cod sursa (job #2334197) | Cod sursa (job #1278274) | Cod sursa (job #2487646)
#include <fstream>
#include <deque>
#include <vector>
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
vector <int> g[100001];
deque <int> dq;
int d[100001];
int n, m;
void bfs(int u){
int v;
d[u]=1;
dq.push_back(u);
while(!dq.empty()){
v=dq.front();
dq.pop_front();
for(int i=0; i<g[v].size(); i++){
if(!d[g[v][i]]){
d[g[v][i]]=d[v]+1;
dq.push_back(g[v][i]);
}
}
}
}
int main(){
int s, a, b;
fin>>n>>m>>s;
for(int i=0; i<m; i++){
fin>>a>>b;
g[a].push_back(b);
}
bfs(s);
for(int i=1; i<=n; i++){
if(i==s)
fout<<0<<' ';
else
fout<<d[i]-1<<' ';
}
return 0;
}