Pagini recente » Cod sursa (job #2101044) | Cod sursa (job #1343341) | Cod sursa (job #2163844) | Cod sursa (job #1533238) | Cod sursa (job #1105370)
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
vector <int> gr[1000005];
queue <int> coada;
int n,m,x,y,z,s,v[1000005];
void bfs(int a)
{ int i,k=0;
coada.push(a);
while (coada.size()>0)
{ a=coada.front();
for(i=0;i<gr[a].size();i++)
if(v[gr[a][i]]==-1)
{
coada.push(gr[a][i]);
v[gr[a][i]]=v[a]+1;
}
coada.pop();
}
}
int main()
{ int i;
f>>n>>m>>s;
for(i=1;i<=m;i++)
{
f>>x>>y;
gr[x].push_back(y);
}
for(i=1;i<=n;i++)
v[i]=-1;
v[s]=0;
bfs(s);
for (i=1;i<=n;i++)
g<<v[i]<<" ";
return 0;
}