Cod sursa(job #3319652)

Utilizator DariuzzHackerPrime Dariuzz Data 2 noiembrie 2025 13:12:00
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.59 kb
/******************************************************************************

                              Online C++ Compiler.
               Code, Compile, Run and Debug C++ program online.
Write your code in this editor and press "Run" button to compile and execute it.

*******************************************************************************/

#include <fstream>
#include<vector>
#include<climits>
#include<queue>
#include<unordered_set>
using namespace std ; 
ifstream cin("bfs.in");
ofstream cout("bfs.out");
int main()
{
    int n , m , src , x , y  ; 
    unordered_set<int> seen ; 
      cin >> n >>m >> src ; 
      vector<vector<int> > adj(n+1) ; 
        for(int i = 1 ; i <= m ; i ++ ){
             cin>>x>>y;
              adj[x].push_back(y);
        }
        vector<int> dist(n+1,INT_MAX);
           queue <int> q ; 
           dist[src] = 0 ; 
             q.push(src) ;
               while(!q.empty()){
                   int fr = q.front() ; 
                     q.pop() ; 
                    for(int num : adj[fr]){
                        if(dist[num] > dist[fr] + 1 ){
                              dist[num] = dist[fr] + 1 ; 
                        }
                          if(!seen.count(num)){
                                seen.insert(num);
                                q.push(num);
                          }
                    }
               }
                 for(int i = 1 ; i <= n ; i ++ ){
                       if(dist[i] == INT_MAX )
                         dist[i] = -1 ; 
                         cout<<dist[i]<< ' ';
                 }
      

    return 0;
}