Cod sursa(job #1989941)

Utilizator alex2704Pirvuceanu Alexandru alex2704 Data 9 iunie 2017 17:38:01
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.85 kb
#include <fstream>
#include <vector>
#include <queue>
#define Nmax 100001

using namespace std;

int viz[Nmax];
vector < int > A[Nmax];
queue < int > Qu;
int n;

void bfs(int x)
{
    ofstream fout("bfs.out");
    viz[x] = 1;
    Qu.push(x);
    while (Qu.size())
    {
        int node = Qu.front();
        Qu.pop();
        vector <int>::iterator it;
        for (it = A[node].begin(); it != A[node].end(); ++it)
            if (!viz[*it])
            {
                viz[*it] = viz[node] + 1;
                Qu.push(*it);
            }
    }

    for (int i = 1; i <= n; ++i)
        fout<<viz[i] - 1<< " ";
}

int main()
{
    int m, a, s, b;
    ifstream fin("bfs.in");


    fin>>n>>m>>s;

    for (int i = 0; i < m; ++i)
    {
        fin>>a>>b;
        A[a].push_back(b);
    }

    bfs (s);

    return 0;
}