Cod sursa(job #544797)

Utilizator uaraRoventa Robert uara Data 2 martie 2011 09:58:54
Problema BFS - Parcurgere in latime Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include<iostream>
#include<fstream>
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
int n,m,s,i,v,x,y,a[100000][10000],pa[1000],p,u,d,c[1000],viz[1000];
int main()
{

    f>>n>>m>>s;
    for(i=1;i<=m;i++)
    {
        f>>x>>y;
        a[x][0]++;
        a[x][a[x][0]]=y;
          }
    for (i=1;i<=n;i++)
        pa[i]=-1;
    p=u=1; pa[s]=0;
    c[p]=s;
    viz[s]=1;
    while(p<=u)
    {
    x=c[p];
    //cautam vf adiacente
    for(i=1;i<=a[x][0];i++)
            {
               v=a[x][i];
          if(viz[v]==0){
          u++;
          c[u]=v;
          viz[v]=1;
          pa[v]=pa[x]+1;
                     }
            }
      p++;
     }
    for(i=1;i<=n;i++)
        g<<pa[i]<<" ";
        g<<endl;
    return 0;
}