Cod sursa(job #3334987)

Utilizator pierdcasaPislariu Mario pierdcasa Data 20 ianuarie 2026 22:01:12
Problema BFS - Parcurgere in latime Scor 30
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.67 kb
#include <bits/stdc++.h>

using namespace std;

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

const int NMAX = 101;
int viz[NMAX],d[NMAX],n, m;
vector<int> G[NMAX];
queue<int> Q;


void BFS(int start) {
  viz[start] = 1;
  d[start]=0;
  Q.push(start);
  while (!Q.empty()) {
    int nod = Q.front();
    Q.pop();
    for (int v : G[nod]) {
      if (!viz[v]) {
        viz[v] = 1;
        Q.push(v);
        d[v]=d[nod]+1;
      }
    }
  }
}


int main() {
  int s;

  f>>n>>m>>s;

  for(int i=0;i<m;++i) {
    int x,y;
    f>>x>>y;
    G[x].push_back(y);
  }

  for(int i=1;i<=n;++i)
  {
    d[i]=-1;
  }
  BFS(s);
  for(int i=1;i<=n;++i)
  {
    g<<d[i]<<" ";
  }

  return 0;
}