Pagini recente » Cod sursa (job #672282) | Cod sursa (job #1577926) | Cod sursa (job #457299) | Cod sursa (job #1211625) | Cod sursa (job #2283007)
#include <fstream>
#include <vector>
using namespace std;
ifstream fin ("bfs.in");
ofstream fout ("bfs.out");
int v[1000],c[1000],n,cc,i,j,a,b,lng[1000],m,s;
vector<int> L[100000];
void bfs(int start) {
v[start] = 1;
c[1] = start;
int p = 1, u = 1;
while (p <= u) {
int nod = c[p];
for (i=0;i<L[nod].size();i++) {
int vecin = L[nod][i];
if (v[vecin] == 0) {
c[++u] = vecin;
lng[vecin]=lng[nod]+1;
v[vecin] = 1;
}
}
p++;
}
}
int main()
{
fin>>n>>m>>s;
for(i=1;i<=m;i++){
fin>>a>>b;
L[a].push_back(b);
}
bfs(s);
for(i=1;i<=n;i++)
if(i==s)
fout<<0<<" ";
else
if(lng[i]==0)
fout<<-1<<" ";
else
fout<<lng[i]<<" ";
return 0;
}