Pagini recente » Cod sursa (job #2574598) | Cod sursa (job #816839) | Cod sursa (job #311439) | Cod sursa (job #26255) | Cod sursa (job #966060)
Cod sursa(job #966060)
#include <fstream>
#include <vector>
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
int n,m,S;
int viz[50011];
int c[350011];
vector<int> L[50011];
int main(void){
register int i,j,x,y;
f>>n>>m>>S;
for(i=1;i<=m;i++){
f>>x>>y;
L[x].push_back(y);
}
int p,u;
p=u=1;
c[p]=S;
viz[S]=1;
while(p<=u){
for(i=0;i<L[c[p]].size();i++){
if(viz[L[c[p]][i]]==0){
c[++u]=L[c[p]][i];
viz[c[u]]=viz[c[p]]+1;
}
}
p++;
}
for(i=1;i<=n;i++){
if(viz[i]==0 && i!=S)
g<<"-1 ";
else
g<<viz[i]-1<<" ";
}
f.close();
g.close();
return 0;
}