Cod sursa(job #1712060)

Utilizator stefzahZaharia Stefan Tudor stefzah Data 1 iunie 2016 21:32:43
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <fstream>
#include <queue>
#include <vector>
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
int n,i,j,k,m,x,y,S,d[100005],c,g[100005],v[100005];
vector <int>A[100005];
queue <int> C;
int main()
{fin>>n>>m>>S;
 for(i=1;i<=m;i++)
    {fin>>x>>y;
     A[x].push_back(y);
     g[x]++;
    }
 for(i=1;i<=n;i++)
    d[i]=-1;
 C.push(S);
 d[S]=0;
 v[S]=1;
 while(C.size()>0)
      {c=C.front();
       C.pop();
       v[c]=1;
       for(i=0;i<g[c];i++)
          {if(v[A[c][i]]==0)
             {C.push(A[c][i]);
              v[A[c][i]]=1;
              d[A[c][i]]=d[c]+1;
             }
          }
      }
 for(i=1;i<=n;i++)
    fout<<d[i]<<" ";
}