Pagini recente » Cod sursa (job #2174519) | Cod sursa (job #2480460) | Cod sursa (job #1865698) | Cod sursa (job #2520733) | Cod sursa (job #2218472)
#include <bits/stdc++.h>
using namespace std;
vector<int> v[100001];
int viz[100001],i,j,n,q[100001],s,m,x,y,p,u,e,r;
int main()
{
ifstream in("bfs.in");
ofstream out("bfs.out");
in>>n>>m>>s;
for(i=1;i<=m;i++)
{
in>>x>>y;
v[x].push_back(y);
}
/*for(i=1;i<=n;i++)
{
for(j=0;j<v[i].size();j++)
{
cout<<v[i][j]<<' ';
}
cout<<'\n';
}*/
for(i=1;i<=n;i++)
{
viz[i]=2000000000;
}
viz[s]=0;
q[1]=s;
p=1;
u=1;
while(p<=u) //<=
{
r=q[p];
for(i=0;i<(v[r].size());i++)
{
e=v[r][i];
// cout<<e<<' ';
if(viz[r]+1<viz[e])
{
viz[e]=viz[r]+1;
u++;
q[u]=e;
}
}
p++;
}
for(i=1;i<=n;i++)
{
if(viz[i]!=2000000000)
out<<viz[i]<<' ';
else
out<<"-1 ";
}
}