Cod sursa(job #3150232)

Utilizator CalinachoGherlan Calin Paul Calinacho Data 15 septembrie 2023 13:51:07
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.81 kb
#include<bits/stdc++.h>
using namespace std;

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

struct graf{
    int nr;
    vector<int>vec;
    int dist=-1;
};

int main(){
    int n, m, s, aux1, aux2;
    in>>n>>m>>s;
    vector<graf>G(n);
    for(int i=0; i<m;i++){
        in>>aux1>>aux2;
        G[aux1-1].vec.push_back(aux2-1);
        G[aux1-1].nr++;
    }    
    queue<int>q;
    G[s-1].dist=0;
    q.push(s-1);
    
    while(!q.empty()){
        for(int i=0;i<G[q.front()].nr;i++){
            if(G[G[q.front()].vec[i]].dist>G[q.front()].dist+1 || G[G[q.front()].vec[i]].dist==-1){
                G[G[q.front()].vec[i]].dist=G[q.front()].dist+1;
                q.push(G[q.front()].vec[i]);
            }
        }
        q.pop();
    }
    
    for(int i=0; i<n;i++){
        out<<G[i].dist<<" ";   
    }
    
}