Cod sursa(job #3368586)

Utilizator corneacarminaCornea Carmina-Stefania corneacarmina Data 15 octombrie 2026 08:52:40
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.98 kb
#include <bits/stdc++.h>
using namespace std;

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

const int INF = 100000;

int n, m, s;
vector<int> L[100005];
int d[100005];

void bfs(int sursa)
{
     for ( int i =1; i<= n; i++)
     {
          d[i] = INF;
     }
     d[sursa] = 0;
     queue<int> q;
     q.push(sursa);
     while( !q.empty())
     {
          int node = q.front();
          q.pop();
          for ( auto vec : L[node])
          {
               if(d[vec] > d[node] + 1)
               {
                    d[vec] = d[node] + 1;
                    q.push(vec);
               }
          }
     }

}

int main()
{
   
     fin>>n>>m>>s;
     for ( int i =1; i<=m; i++)
     {
          int x, y;
          fin>>x>>y;
          L[x].push_back(y);
     }
     bfs(s);
     for( int i = 1; i <=n ; i++)
     {
          if(d[i] == INF)
          {
               d[i] = -1;
          }
          fout<<d[i]<<" ";
     }
}