Pagini recente » Cod sursa (job #3184679) | Cod sursa (job #2812922) | Cod sursa (job #2537775) | Cod sursa (job #2190199) | Cod sursa (job #2259806)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
vector<int> ls[100002];
int i,j,m,n,s,d[100002],dr[1000001];
int main()
{
fin>>n>>m>>s;
for (i=1;i<=n;i++)
d[i]=-1;
for (i=1;i<=m;i++)
{
int a,b;
fin>>a>>b;
ls[a].push_back(b);
}
int l=1,r=1;
dr[1]=s;
d[s]=0;
j=1;
while (l<=r)
{
for (i=0;i<ls[dr[l]].size();i++)
if (d[ls[dr[l]][i]]==-1)
{
r++;
dr[r]=ls[dr[l]][i];
d[dr[r]]=d[dr[l]]+1;
}
l++;
j++;
}
for (i=1;i<=n;i++) fout<<d[i]<<" ";
return 0;
}