Cod sursa(job #3239203)

Utilizator Tudor567Voica Tudor Tudor567 Data 2 august 2024 22:41:43
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.69 kb
#include<fstream>
#include<vector>
#include<queue>

using namespace std;

const int nmax = 100005;
int n,m,s;

vector<int> a[nmax],cost(100005,-1);
queue<int> q;

void bfs(int nod){
    q.push(s);
    cost[s] = 0;

    while(!q.empty()){

        for(int vec: a[q.front()])
            if(cost[vec] == -1){
            cost[vec] = cost[q.front()]+1;
            q.push(vec);
            }
            
        q.pop();
    }    
}

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

int main(){
    fin>>n>>m>>s;

    while(m--){
        int x,y;
        fin>>x>>y;
        a[x].push_back(y);   
    }

    bfs(s);
    for(int i = 1; i <= n; i++)fout<<cost[i]<<" ";

}