Cod sursa(job #2494402)

Utilizator sygAndreiIonitaIonita Andrei sygAndreiIonita Data 17 noiembrie 2019 20:04:28
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.91 kb
#include <fstream>
#include <vector>
#include <deque>

using namespace std;

deque <int> dq;
int rasp[100001];
vector <int> v[100001];

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

void bfs (int x)
{
    int nod;
    dq.push_back(x);
    rasp[x]=1;
    {
        while (!dq.empty())
        {
            nod=dq.front();
            dq.pop_front();
            for (int i=0; i<v[nod].size(); i++)
                if (!rasp[v[nod][i]])
                {
                    rasp[v[nod][i]]=rasp[nod]+1;
                    dq.push_back(v[nod][i]);
                }
        }
    }

}

int main()
{
    int n,m,s,a,b,i;
    in>>n>>m>>s;
    for (i=1; i<=m; i++)
    {
        in>>a>>b;
        v[a].push_back(b);
    }
    bfs(s);
    for (i=1; i<=n; i++)
    {
        if (i==s)
            out<<0<<" ";
        else
            out<<rasp[i]-1<<" ";
    }
    return 0;
}