Pagini recente » Cod sursa (job #2861915) | Cod sursa (job #1378558) | Cod sursa (job #2337029) | Cod sursa (job #269527) | Cod sursa (job #398646)
Cod sursa(job #398646)
#include <iostream.h>
#include <fstream.h>
#define DIM 1001
char a[DIM][DIM];
int c[DIM];
char viz[DIM];
int D[DIM];
int n,m,i,j,p,u,s;
ifstream f("bfs.in");
ofstream g("bfs.out");
void citire(){
int i,j,k;
f>>n>>m>>s;
for (k = 1; k<=m; k++) {
f>>i>>j;
a[i][j]=1;
}
}
void bf(){
int p,x,u;
p=u=1;
c[p]=s;
viz[s]=1;
while(p<=u){
for(i=1;i<=n;i++)
if(a[c[p]][i]==1&&!viz[i]){
c[++u]=i;
viz[i]=1;
D[i] = D[c[p]] + 1;
}
p++;
}
}
int main(){
citire();
bf();
for (i=1;i<=n;i++)
if (viz[i] == 0)
g<<-1<<" ";
else
g<<D[i]<<" ";
g.close();
f.close();
return 0;
}