Pagini recente » Cod sursa (job #525844) | Cod sursa (job #2078184) | Cod sursa (job #1363543) | Istoria paginii utilizator/beauty_in_the_sky | Cod sursa (job #2008441)
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
int main()
{
int n, m, s,nod_start, nod_end;
fin>>n>>m>>s;
vector<int> graph[100100];
queue<int>q;
vector<int>vizitat(n+1,0);
vector<int>rezultat(n+1,0);
//vector<vector<int>> v(n,)
for(int i=0; i<m; i++ ){
fin>>nod_start>>nod_end;
graph[nod_start].push_back(nod_end);
}
q.push(s);
vizitat[s]=1;
rezultat[s]=0;
while(!q.empty()){
for(int i=0; i<graph[q.front()].size(); i++){
int nod=graph[q.front()][i];
if(vizitat[nod]==0){
q.push(nod);
vizitat[nod]=1;
rezultat[nod]=rezultat[q.front()]+1;
}
}
q.pop();
}
for(int i=1; i<=n;i++){
if(vizitat[i]==0 ){
fout<<-1<<" ";
}
else{
fout<<rezultat[i]<<" ";
}
}
return 0;
}