Cod sursa(job #3326119)

Utilizator Dana_VidroiuVidroiu Dana-Maria Dana_Vidroiu Data 27 noiembrie 2025 13:57:11
Problema BFS - Parcurgere in latime Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.9 kb
#include<iostream> 
#include<fstream> 
#include<vector> 
#include<queue>

using namespace std; 

ifstream cin("bfs.in");
ofstream cout("bfs.out");

vector<int> lista_adiacenta[1001];
int dist[1001];
bool visited[1001];

void BFS(int start)
{
    queue<int> q; 
    q.push(start);
    visited[start] = 1;
    dist[start] = 0;
    
    while(!q.empty())
    {
        int node = q.front();
        q.pop();
        
        for(int v : lista_adiacenta[node])
            if(dist[v] == -1)
            {
                q.push(v);
                dist[v] = dist[node] + 1;
            }
    }
}


int main() 
{
    int n, m, a, b, start, i; 
    cin >> n >> m; 
    for(i = 0; i < m; i++)
    {
        cin >> a >> b;
        lista_adiacenta[a].push_back(b);
    }
    cin >> start;
    
    for(i = 1; i <= n; i++)
        dist[i] = -1;
        
    BFS(start);
    for(i = 1; i <= n; i++)
        cout << dist[i] << " ";
}