Pagini recente » Cod sursa (job #989019) | Cod sursa (job #490971) | Cod sursa (job #2671799) | Cod sursa (job #953569) | Cod sursa (job #2198890)
#include <fstream>
#include <vector>
using namespace std;
vector <int> v[100002];
int i,a,b,n,m,G[100002],dist[100002],c[100002],start,p,t;
int main()
{
ifstream f("bfs.in");
ofstream g("bfs.out");
f>>n>>m>>start;
for(i=1;i<=m;i=i+1)
{
f>>a>>b;
v[a].push_back(b);
}
for(i=1;i<=n;i=i+1)
{
G[i]=v[i].size();
dist[i]=-1;
}
c[1]=start; p=1; t=1; dist[start]=0;
while(p<=t)
{
for(i=0;i<G[c[p]];i++)
if(dist[v[c[p]][i]]==-1)
{
c[++t]=v[c[p]][i];
dist[c[t]]=dist[c[p]]+1;
}
p++;
}
for(i=1;i<=n;i=i+1)
g<<dist[i]<<' ';
return 0;
}