Cod sursa(job #897938)
| Utilizator | Data | 27 februarie 2013 23:09:09 | |
|---|---|---|---|
| Problema | BFS - Parcurgere in latime | Scor | 50 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.68 kb |
#include <iostream>
#include<fstream>
using namespace std;
int a[20003][20003];
int main()
{
fstream f("bfs.in",ios::in),g("bfs.out",ios::out);
int u,p,k=1,x,y,j,n,i,m,S,viz[100003];
f>>n>>m>>S;
for(i=1;i<=m;i++)
{
f>>x>>y;
a[x][y]=1;
}
int C[100003],vf;
viz[S]=1;
p=u=0;
C[++u]=S;
while(p<u)
{
vf=C[++p];
for(i=1;i<=n;i++)
if(a[vf][i]!=0&&viz[i]==0)
{
C[++u]=i;
viz[i]=viz[vf]+1;
}
}
for(i=1;i<=n;i++)
if(viz[i]==0)
g<<-1<<" ";
else
g<<viz[i]-1<<" ";
}
