Pagini recente » Cod sursa (job #1203264) | Cod sursa (job #1735147) | Cod sursa (job #1197443) | Cod sursa (job #817001) | Cod sursa (job #1214319)
#include <iostream>
#include <vector>
#include <fstream>
#include <deque>
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
vector < int > v[100001];
deque < int > p;
bool viz[100001];
int sol[100001];
int main()
{
int N,M,S,x,y,d = 0,nod,sz;
f >> N >> M >> S;
for(int i = 1; i <= M; i++){
f >> x >> y;
v[x].push_back(y);
}
p.push_back(S);
viz[S] = 1;
while(p.empty() == false){
nod = p[0];
sz = v[nod].size();
for(int i = 0; i < sz; i++){
if(viz[v[nod][i]] == 0){
p.push_back(v[nod][i]);
sol[v[nod][i]] = sol[nod] + 1;
viz[v[nod][i]] = 1;
}
}
p.pop_front();
}
for(int i = 1; i <= N; i++){
if(sol[i] == 0 && i != S)
g << -1 << " ";
else
g << sol[i] << " ";
}
return 0;
}