Cod sursa(job #2209376)

Utilizator ElektrykT E S L A P E F E L I E Elektryk Data 3 iunie 2018 10:44:39
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include <fstream>
#include <queue>
#include <vector>

using namespace std;

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

int n, m, s, nod1, nod2;
int checked[100001];
vector <int> v[100001];
queue <int> q;

void bfs(int nod)
{
    checked[nod]++;
    q.push(nod);
    while(!q.empty())
    {
        nod=q.front();
        q.pop();
        for(register int i=0; i<v[nod].size(); ++i)
            if( !checked[v[nod][i]] )
            {
                q.push(v[nod][i]);
                checked[v[nod][i]]=checked[nod]+1;
            }
    }
}

int main()
{
    in>>n>>m>>s;
    for(register int i=1; i<=m; ++i)
    {
        in>>nod1>>nod2;
        v[nod1].push_back(nod2);
    }
    bfs(s);
    for(register int i=1; i<=n; ++i)
        out<<checked[i]-1<<" ";
    return 0;
}