Pagini recente » Cod sursa (job #2351170) | Cod sursa (job #155596) | Cod sursa (job #2496105) | brasov_12_jr | Cod sursa (job #2221196)
#include <fstream>
#include <vector>
std::ifstream cin("bfs.in");
std::ofstream cout("bfs.out");
#define maxn 100010
typedef std::vector<int>::iterator iter;
std::vector <int> g[maxn];
int viz[maxn],n,m,x;
void bfs(int x){
int p,u,c[maxn];
p=u=1;
c[1]=x;
viz[x]=0;
while(p<=u){
x=c[p++];
for(iter it=g[x].begin();it!=g[x].end();it++)
if(viz[*it]==-1){
c[++u]=*it;
viz[*it]=viz[x]+1;
}
}
}
int main()
{
int y,z;
cin>>n>>m>>x;
for(int i=1;i<=n;i++)
viz[i]=-1;
while(cin>>y>>z)
g[y].push_back(z);
bfs(x);
for(int i=1;i<=n;i++)
cout<<viz[i]<<" ";
return 0;
}