Pagini recente » Cod sursa (job #2417742) | Cod sursa (job #1219042) | Cod sursa (job #2850609) | Cod sursa (job #2917109) | Cod sursa (job #2975131)
#include<bits/stdc++.h>
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
vector<int>lista[100010];
queue<int>q;
int dist[100010],n,x,y,m,cnt,p,val;
int viz[100010];
void Bfs( int nod )
{
q.push(nod);
dist[nod]=0;
while(!q.empty())
{
p=q.front();
viz[p]=1;
q.pop();
for(auto urmator:lista[p])
if(viz[urmator]==0)
{
dist[urmator]=dist[p]+1;
q.push(urmator);
}
}
}
int main()
{
fin >> n >> m>>val;
for( int i = 1; i <= m; i++ )
{
fin >> x >> y;
lista[x].push_back( y );
}
Bfs(val);
for(int i=1;i<=n;i++)
if(viz[i]==0) fout<<-1<< ' ';
else fout<<dist[i]<<' ';
return 0;
}