Pagini recente » Cod sursa (job #377436) | Cod sursa (job #347225) | Cod sursa (job #1505496) | Cod sursa (job #730895) | Cod sursa (job #605877)
Cod sursa(job #605877)
#include <iostream>
#include<fstream>
#include<vector>
#include<queue>
#define N 100001
using namespace std;
ifstream in("bfs.in");
ofstream out("bfs.out");
int n,m,s,x[N],q[N],p=1,u;
vector<int> g[N];
void bfs() {
int i;
q[++u]=s;
x[s]=0;
while(p<=u) {
for(i=0; i!=g[q[p]].size() ; ++i)
if(x[ g[ q[p] ][i]] == -1) {
x[g[ q[p] ][i]]=1+x[q[p]];
q[++u]=g[q[p]][i];
}
++p;
}
}
int main() {
int i,a,b;
in >> n >> m >> s;
for(i=1;i<=m;++i) {
in >> a >> b;
if(a==b)
continue;
g[a].push_back(b);
}
for(i=1;i<=n;++i)
x[i]=-1;
bfs();
for(i=1;i<=n;++i)
out << x[i] << " ";
return 0;
}