Cod sursa(job #2969956)

Utilizator raileanu-alin-gabrielRaileanu Alin-Gabriel raileanu-alin-gabriel Data 23 ianuarie 2023 21:57:26
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.66 kb
#include <fstream>
#include <vector>
#include <queue>
const int NMAX=100005;

using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");

void bfs(int);

vector <int> v[NMAX];
queue <int> c;
int d[NMAX];
int n, m, s;

int main()
{
  int i, a, b;
  fin>>n>>m>>s;
  for(i=1; i<=n; i++) d[i]=-1;
  for(i=1; i<=m; i++)
  {
    fin>>a>>b;
    v[a].push_back(b);
  }
  bfs(s);
  for(i=1; i<=n; i++) fout<<d[i]<<' ';
  fout<<'\n';
  return 0;
}

void bfs(int nod)
{
  int p;
  c.push(nod);
  d[nod]=0;
  while(!c.empty())
  {
    p=c.front();
    for(auto i:v[p])
    {
      if(d[i]==-1)
      {
        d[i]=d[p]+1;
        c.push(i);
      }
    }
    c.pop();
  }
}