Cod sursa(job #2660344)

Utilizator Fiby24Chitimia Dragos Fabian Nicusor Fiby24 Data 18 octombrie 2020 23:18:59
Problema BFS - Parcurgere in latime Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.02 kb
#include <fstream>
#include <vector>
#include <queue>

using namespace std;

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

int N , M;

const int NLIM = 100005;
vector <int> Muchii[NLIM];
queue <int> Coada;

int Distanta[NLIM];

void BFS()
  {
    int NOD , Vecin;
    while(!Coada.empty())
      {
        Nod = Coada.front();
        Coada.pop();
        for(unsigned int i=0 ; i < Muchii[Nod].size() ; i++)
        {
          Vecin = Muchii[Nod][i];
          if(Distanta[Vecin] == -1)
            Coada.push(Vecin);
            Distanta[Vecin] = Distanta[Nod] + 1;
        }
      }
  }

void citire()
  {
    int nodStart;
    f>>N>>M>>nodStart;
    for(int i=1;i<=M;i++)
      {
        int x , y;
        f>>x>>y;
        Muchii[x].push_back(y);
      }
    for(int i=1;i<=N;i++)
        Distanta[i] = -1;
    Distanta[nodStart] = 0;
    Coada.push(nodStart);
    BFS();
    for(int i=1;i<=N;i++)
      g<<Distanta[i]<<" ";
  }

int main()
  {
    citire();
    return 0;
  }