Pagini recente » Cod sursa (job #2587412) | Cod sursa (job #2447522) | Cod sursa (job #2652631) | Cod sursa (job #1910388) | Cod sursa (job #3272223)
//BFS-SURSA-DISTANTA LA FIECARE ARC
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream in("bfs.in");
ofstream out("bfs.out");
vector<int> graf[10000000], d(1000000,-1);
void BFS(int nod){
queue<int> q;
q.push(nod);
d[nod]=0;
while(!q.empty()){
nod=q.front();
q.pop();
for(int i : graf[nod]){
if(d[i]==-1){
d[i]=d[nod]+1;
q.push(i);
}
}
}
}
int main(){
int N,M,S;
in>>N>>M>>S;
for(int i=1;i<=M;++i){
int x,y;
in>>x>>y;
graf[x].push_back(y);
}
BFS(S);
for(int i=1;i<=N; ++i){
out<<d[i]<<" ";
}
in.close();
out.close();
return 0;
}