Cod sursa(job #3224566)

Utilizator Radu_VasileRadu Vasile Radu_Vasile Data 15 aprilie 2024 17:16:27
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.76 kb
#include <bits/stdc++.h>
#define MAXN 100000
using namespace std;
vector <int> vecini[MAXN + 1];
int d[MAXN + 1], coada[MAXN + 1];
ifstream fin ("bfs.in");
ofstream fout("bfs.out");
int main()
{
    int n, m, x, s, y, p, u, node, v, i;
    fin >> n >> m >> s;
    for( i = 0; i < m; i++ ){
      fin >> x >> y;
      vecini[x].push_back(y);
    }

    d[s] = 1;
    coada[1] = s;
    p = u = 1;
    while( p <= u ){
      node = coada[p];
      for( i = 0; i < vecini[node].size(); i++ ){
        v = vecini[node][i];
        if(d[v] == 0){
          u++;
          coada[u] = v;
          d[v] = d[node] + 1;
        }
      }
      p++;
    }
    for( i = 1; i <= n; i++ )
      fout << d[i] - 1 << " ";
    fout << endl;

    return 0;
}