Cod sursa(job #530136)
| Utilizator | Data | 6 februarie 2011 22:40:12 | |
|---|---|---|---|
| Problema | BFS - Parcurgere in latime | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.5 kb |
#include<iostream.h>
#include<fstream.h>
int a[10000][10000];
int main()
{int n,m,s,x,y,k,j,i;
ifstream f("bfs.in");
ofstream h("bfs.out");
f>>n>>m>>s;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
a[i][j]=10000;
for(i=1;i<=m;i++)
{ f>>x>>y;
a[x][y]=1;}
for(k=1;k<=n;k++)
for(j=1;j<=n;j++)
if(a[s][j]>a[s][k]+a[k][j]&&i!=k&&j!=k)
a[s][j]=a[s][k]+a[k][j];
for(j=1;j<=n;j++)
{if(s==j&&a[s][s]==1)
h<<0<<" ";
else
if(a[s][j]==10000)
h<<-1<<" ";
else
h<<a[s][j]<<" ";}
return 0;}
