Cod sursa(job #2667163)

Utilizator andrei.calin25Calin Andrei andrei.calin25 Data 2 noiembrie 2020 23:18:01
Problema BFS - Parcurgere in latime Scor 20
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.78 kb
#include <iostream>
#include <vector>
#include <fstream>
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");

bool vizitat[100001];
int n, m, s, distanta[100001];
vector<int> muchii_din[100001];

void citire() {
    f>>n>>m>>s;
    int a, b;
    for(int i=0; i<m; i++) {
        f>>a>>b;
        muchii_din[a].push_back(b);
    }
}

void bfs(int i, int contor) {
    //cout<<i<<": ";
    vizitat[i] = 1;
    distanta[i] = contor;

    for(int j : muchii_din[i]) {
        //cout<<" _"<<j<<"_ ";

        if (vizitat[j] == 0) {
            //cout << "A" <<endl;
            bfs(j, contor + 1);
            //cout<<endl<<i<<": ";
        }
    }

}

int main() {
    citire();
    f.close();

    bfs(s, 1);

    for(int i=1; i<=n; i++)
        g<<distanta[i]-1<<' ';

    g.close();

}