Cod sursa(job #1392522)

Utilizator BlackMWStefan Laurentiu BlackMW 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;
}