Pagini recente » Cod sursa (job #2236988) | Cod sursa (job #1459122) | Cod sursa (job #1828815) | Cod sursa (job #770316) | Cod sursa (job #333373)
Cod sursa(job #333373)
#include <fstream>
#include <vector>
#include <iostream>
using namespace std;
int N,M,S,a,b, Nx[100010], Q[100010],i,j;
vector<int> V[100010];
vector<int>::iterator it;
bool bb;
int main() {
ifstream in;
ofstream out;
in.open("bfs.in");
out.open("bfs.out");
in >> N >> M >> S;
for (i=0; i<M; i++) {
in >> a >> b;
V[a].push_back(b);
}
Q[++Q[0]]=S;
for (i=0;i<=N;i++)
Nx[i]=-1;
Nx[S]=0;
i=0;
while (i<Q[0]) {
i++;
j++;
bb=false;
S=Q[i];
for (it=V[S].begin(); it!=V[S].end(); it++) {
if (Nx[*it]==-1) {
Nx[*it]=j;
Q[++Q[0]]=*it;
bb=true;
}
}
if (!bb) j--;
}
for (i=1;i<=N;i++) {
out << Nx[i] << " ";
}
out.close();
return 0;
}