Pagini recente » Cod sursa (job #1875771) | Cod sursa (job #2031947) | Cod sursa (job #1659415) | Cod sursa (job #33722) | Cod sursa (job #2544880)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
vector<int> v[100001];
int viz[100001];
int lung[100001];
int coada[100001];
void bfs(int nod)
{
int st,dr;
st=dr=1;
viz[nod] = 1;
while(st<=dr){
for(int i=0; i<v[nod].size(); i++)
{
if(viz[v[nod][i]] == 0)
{
dr++;
viz[v[nod][i]] = 1;
coada[dr] = v[nod][i];
lung[v[nod][i]] = lung[nod] + 1;
}
}
st++;
nod = coada[st];
}
}
int main()
{
int n,i,j,k,l,s,x,y,m;
fin>>n>>m>>s;
for(i=1;i<=m;i++)
{
fin>>x>>y;
v[x].push_back(y);
}
bfs(s);
for(i=1;i<=n;i++)
{
if(viz[i])
fout<<lung[i]<<' ';
else
fout<<-1<<' ';
}
return 0;
}