Pagini recente » Cod sursa (job #2410235) | Cod sursa (job #2358502) | Cod sursa (job #2789672) | Cod sursa (job #425755) | Cod sursa (job #1169211)
#include <fstream>
#include <vector>
#include <queue>
#define dim 100001
using namespace std;
vector<int> v[dim];
queue <int> Q;
int n,m,s,i,x,y,dist[dim];
bool viz[dim];
void bfs(){
for(i=0;i<int(v[x].size());i++)
if(!viz[v[x][i]]){
viz[v[x][i]]=1;
Q.push(v[x][i]);
dist[v[x][i]]=dist[x]+1;
}
}
int main(){
ifstream f("bfs.in");
ofstream g("bfs.out");
f>>n>>m>>s;
for(i=1;i<=m;i++){
f>>x>>y;
v[x].push_back(y);
}
Q.push(s);
viz[s]=1;
while(!Q.empty()){
x=Q.front();
Q.pop();
bfs();
}
for(i=1;i<=n;i++)
g<<((viz[i])?dist[i]:-1)<<" ";
}