Cod sursa(job #2927436)

Utilizator biancar28Radulescu Alexia-Bianca biancar28 Data 20 octombrie 2022 15:48:38
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.88 kb
#include <iostream>
#include <fstream>
#include <queue>
#include <vector>

using namespace std;

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


int main() {
    int n,m,s,x,y,nod,dis;
    f>>n>>m>>s;

    queue<pair<int,int>>coada;
    vector<vector<int>>lista(n+1);
    vector<int>dist(n+1,-1);
    vector<int>viz(n+1,0);

    while(f){
        f>>x>>y;
        lista[x].push_back(y);
    }

    dist[s]=0;
    viz[s]=1;
    coada.push({s,dist[s]});

    while(!coada.empty()){
        nod=coada.front().first;
        dis=coada.front().second;
        coada.pop();

        for(int i=0; i<lista[nod].size();i++)
        {
            if(viz[lista[nod][i]]!=1){
                coada.push({lista[nod][i],dis+1});
                dist[lista[nod][i]]=dis+1;
                viz[lista[nod][i]]=1;
            }
        }
    }

    for(int i=1;i<n+1;i++){
        g<<dist[i]<<" ";
    }


    return 0;
}