Pagini recente » Cod sursa (job #1862726) | Cod sursa (job #2338135) | Cod sursa (job #841286) | Cod sursa (job #2508315) | Cod sursa (job #1149551)
#include<fstream>
#include<vector>
#define maxn 100003
#include<queue>
using namespace std;
ifstream f("bfs.in");
ofstream gg("bfs.out");
int n,m,e1,e2,sur,x;
vector <int> v(maxn),g[maxn],cost(maxn),viz(maxn);
queue <int> Q;
void latime(int sursa){
for(int i=1;i<=n;++i)
cost[i]=-1;
Q.push(sursa);
cost[sursa]=0;
viz[sursa]=1;
while(!Q.empty()){
x=Q.front();Q.pop();
while(g[x].size()){
Q.push(g[x].front());
if(viz[g[x].front()]==0){
viz[g[x].front()]=1;
cost[g[x].front()]=cost[x]+1;
}
g[x].erase(g[x].begin());
}
}
}
int main(){
f>>n>>m>>sur;
for(int i=1;i<=m;++i){
f>>e1>>e2;
g[e1].push_back(e2);
}
latime(sur);
for(int i=1;i<=n;++i)
gg<<cost[i]<<" ";
return 0;
}