Cod sursa(job #1073318)

Utilizator vyrtusRadu Criuleni vyrtus Data 5 ianuarie 2014 22:23:36
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.85 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <deque>

using namespace std;

vector <int> drum[1000001];
deque <int> coada;
int val[100001];
int n,m,k;

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

int main()
{
     f >> n >> m >> k;
     for (int i=1;i<=m;++i)
     {
         int x,y;
         f >> x >> y;
           drum[x].push_back(y);
     }
   for (int i=1; i<=n; i++)
   {
       val[i] = -1;
   }
  coada.push_back(k);
  val[k] = 0;
// val -1 0 -1 -1 -1
while (!coada.empty())
{
  int nod = coada.front();
   // nod = 2
  for (int i=0; i<drum[nod].size(); ++i)
  {
      int t = drum[nod][i];

       if (val[t] == -1)
        {  val[t] = val[nod] + 1;
          coada.push_back(t);
       }
  }
coada.pop_front();
}

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

    return 0;
}