Pagini recente » Cod sursa (job #2774082) | Cod sursa (job #1527584) | Cod sursa (job #2390570) | Cod sursa (job #2387324) | Cod sursa (job #1233290)
#include <fstream>
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
int i,m,n,a[1001][1001],q[1001],v[1001],c[1001],viz[1001],p,u,s,x,y;
int main(){
f>>n>>m>>s;
for (i=1;i<=m;i++){
f>>x>>y;
v[x]++;
a[x][0]=v[x];
a[x][v[x]]=y;
}
for (i=1;i<=n;i++)
c[i]=-1;
q[1]=s;
viz[s]=1;
c[s]=0;
p=u=1;
while (p<=u){
for (i=1;i<=v[q[p]];i++)
if (viz[a[q[p]][i]]==0){
u++;
q[u]=a[q[p]][i];
viz[a[q[p]][i]]=1;
c[a[q[p]][i]]=c[q[p]]+1;
}
p++;
}
for (i=1;i<=n;i++)
g<<c[i]<<" ";
return 0;
}