Cod sursa(job #2326986)

Utilizator infoinbloodIonut Bratu infoinblood Data 24 ianuarie 2019 12:17:34
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.7 kb
#include <bits/stdc++.h>
#define NMAX 100001

using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");

vector<int>vecini[NMAX];
queue<int>q;
int n,m,a,b,v;
int d[NMAX];
int main()
{
    fin>>n>>m>>v;
    for(int i=1;i<=m;++i)
    {
        fin>>a>>b;
        vecini[a].push_back(b);
    }
    for(int i=1;i<=n;++i)
        d[i]=-1;
    q.push(v);
    d[v]=0;
    while(q.size())
    {
        int varf=q.front();
        q.pop();


        for(auto x: vecini[varf])
        {
            if(d[x]==-1)
            {
                d[x]=d[varf]+1;
                q.push(x);
            }
        }
    }
    for(int i=1;i<=n;++i)
        fout<<d[i]<<" ";
}