Pagini recente » Cod sursa (job #925442) | Cod sursa (job #2750126) | Cod sursa (job #70235) | Cod sursa (job #1368333) | Cod sursa (job #1886613)
#include <bits/stdc++.h>
#define INF 999999999
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
vector<int> g[100010];
int a, b, sursa, n, m, coada[100010], p, u, dist[100010], viz[100010];
int main()
{
fin>>n>>m>>sursa;
for(int i=0;i<m;i++)
{
fin>>a>>b;
g[a].push_back(b);
}
for(int i=1;i<=100000;i++)
dist[i]=99999999;
p=u=1;
coada[p]=sursa;
dist[sursa]=0;
viz[sursa]=1;
while(p<=u)
{
for(int i=0;i<g[coada[p]].size();i++)
if(!viz[g[coada[p]][i]])
{
viz[g[coada[p]][i]]=1;
coada[++u]=g[coada[p]][i];
dist[g[coada[p]][i]]=dist[coada[p]]+1;
}
p++;
}
for(int i=1;i<=n;i++)
if(dist[i]!=99999999)
fout<<dist[i]<<' ';
else
fout<<-1<<' ';
return 0;
}