Cod sursa(job #1227898)

Utilizator robertstrecheStreche Robert robertstreche Data 12 septembrie 2014 07:29:49
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include <fstream>
#include <vector>

#define lmax 100005

using namespace std;

ifstream f("bfs.in");
ofstream g("bfs.out");

vector <int>v[lmax];

int n,m,p,u,po,x,y,nodcurent;
int dist[lmax];
int s[lmax];

int main()
{
  f>>n>>m>>po;

  for (int i=1;i<=m;i++)
    {
        f>>x>>y;

        v[x].push_back(y);
    }
   dist[po]=1;
   s[1]=po;
   p=u=1;

   while (p<=u)
    {
        nodcurent=s[p++];

        for (int i=0;i<v[nodcurent].size();i++)
          if (!dist[v[nodcurent][i]])
            {
                dist[v[nodcurent][i]]=dist[nodcurent]+1;

                u++;
                s[u]=v[nodcurent][i];
            }
    }

   for (int i=1;i<=n;i++)
     g<<dist[i]-1<<" ";

  f.close();
  g.close();
}