Cod sursa(job #1587030)
| Utilizator | Data | 1 februarie 2016 19:31:09 | |
|---|---|---|---|
| Problema | BFS - Parcurgere in latime | Scor | 50 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.56 kb |
#include <fstream>
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
int p,u,i,x,y,n,m,s,c[1000001],v[1000001];
char a[10001][10001];
int main()
{ f>>n>>m>>s;
for(i=1;i<=m;++i)
{f>>x>>y;
a[x][y]=1;
}
p=1;
u=1;
c[p]=s;
v[s]=1;
while(p<=u)
{x=c[p];
p++;
for(i=1;i<=n;++i)
if(a[x][i]==1&&v[i]==0)
{ u++;
c[u]=i;
v[i]=v[x]+1;
}
}
for(i=1;i<=n;++i)
if(v[i]==0)
g<<-1<<' ';
else
g<<v[i]-1<<' ';
return 0;
}
