Cod sursa(job #3266823)

Utilizator Victor_9Diaconescu Victor Victor_9 Data 10 ianuarie 2025 16:43:36
Problema BFS - Parcurgere in latime Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.9 kb
#include <bits/stdc++.h>
using namespace std;
const int nmax = 1e5 + 5;

int N, M, vis[nmax], pasi[nmax], S, k;
vector < int > adj[nmax];

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

queue < int > q;
int bfs(int node){
    
    q.push(node);
    vis[node] = 1;
    
    while(!q.empty()){
        k = q.front();
        q.pop();
        for(auto elem : adj[k]){
            if(vis[elem] == 0){
                pasi[elem] = pasi[k] + 1;
                q.push(elem);
                vis[elem] = 1;
            }
        }
        
    }
    
    
}

int main()
{
    fin>>N>>M>>S;
    
    for(int i=1;i<=M;i++){
        int x, y;
        fin>>x>>y;
        adj[x].push_back(y);
    }
    
    bfs(S);
    
    for(int i=1;i<=N;i++){
        if(pasi[i]!=0 || i==S){
            fout<<pasi[i]<<" ";
        }else{
            fout<<-1<<" ";
        }
    }
    
}