Cod sursa(job #1392522)
| Utilizator | Data | 18 martie 2015 18:29:57 | |
|---|---|---|---|
| Problema | BFS - Parcurgere in latime | Scor | 50 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.55 kb |
#include <fstream>
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
struct graf{int x,y;}v[100001];
int n,s,m,C[100001],viz[100001],prim,ultim,p;
void citire()
{f>>n>>m>>s;
for(int i=1;i<=m;i++)f>>v[i].x>>v[i].y;
}
void bfs()
{
C[1]=s;prim=ultim=1;viz[s]=1;
while(prim<=ultim)
{p=C[prim++];
for(int i=1;i<=m;i++)
if(v[i].x==p&&viz[v[i].y]==0&&v[i].y!=p){C[++ultim]=v[i].y;viz[v[i].y]=viz[p]+1;}
}
}
int main()
{
citire();
bfs();
for(int i=1;i<=n;i++)g<<viz[i]-1<<" ";
return 0;
}
