Pagini recente » Cod sursa (job #19003) | Cod sursa (job #3128920) | Cod sursa (job #1523125) | Cod sursa (job #1724335) | Cod sursa (job #1711088)
#include <fstream>
#include <vector>
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
int n,m,s,c[100001], niv[100001];
vector <int> L[100001];
int main()
{ f>>n>>m>>s;
for(int u,v,i=1;i<=m;i++)
{ f>>u>>v;
L[u].push_back(v);
}
c[1]=s;
niv[s]=1;
int p=1,u=1;
while(p<=u)
{ int t=c[p];
for(unsigned int i=0;i<L[t].size();i++)
if(!niv[L[t][i]]) {c[++u]=L[t][i]; niv[L[t][i]]=niv[t]+1;}
p++;
}
for(int i=1;i<=n;i++)
if(niv[i]) g<<niv[i]-1<<' '; else g<<"-1 ";
g.close(); return 0;
}