Pagini recente » Cod sursa (job #956778) | Cod sursa (job #1292731) | Cod sursa (job #742588) | Cod sursa (job #997631) | Cod sursa (job #3303098)
#include <bits/stdc++.h>
using namespace std;
int n,m,s,a,b;
vector<int>muchie[100005];
int dist[100005];
void bfs(int inceput)
{
queue<int>q;
q.push(inceput);
dist[inceput]=0;
while(!q.empty())
{
int nod_curent=q.front();
q.pop();
for(auto vecin: muchie[nod_curent])
{
if(dist[vecin]==n)
dist[vecin]=dist[nod_curent]+1, q.push(vecin);
}
}
}
int main()
{
ifstream cin("bfs.in");
ofstream cout("bfs.out");
cin>>n>>m>>s;
for(int i=1; i<=m; i++)
{
cin>>a>>b;
muchie[a].push_back(b);
}
for(int i=1; i<=n; i++)
dist[i]=n;
bfs(s);
for(int i=1; i<=n; i++)
{
if(dist[i]!=n)
cout<<dist[i]<<" ";
else
cout<<-1<<" ";
}
return 0;
}