Cod sursa(job #1434941)

Utilizator mstheodorMihalcea-Simoiu Theodor mstheodor Data 11 mai 2015 18:25:57
Problema BFS - Parcurgere in latime Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include <fstream>

using namespace std;
int x,y,m,s,n,i,L[1001],a[1001][2002];
bool sel[1001];
ifstream f("bfs.in");
ofstream g("bfs.out");
void bf(int x){
  int p,u,c[1001],v,j;
  p=u=1;
  sel[x]=true;
  c[p]=x;
  L[x]=0;
  while(p<=u){
    v=c[p];
    for(j=1; j<=n; ++j)
     if(a[v][j]==1 && !sel[j]){
        u++;
        sel[j]=true;
        c[u]=j;
        L[j]=L[v]+1;
     }
     p++;
  }

}
int main()
{
    f>>n>>m>>s;
    for(i=1; i<=m; ++i){
      f>>x>>y;
      a[x][y]=1;
    }
    bf(s);
    for(i=1;i<=n;++i)
       if(sel[i]) g<<L[i]<<" ";
    else g<<"-1"<<" ";
    return 0;
}