Cod sursa(job #2298516)

Utilizator anamaria41Raicu Ana anamaria41 Data 8 decembrie 2018 11:15:42
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.79 kb
#include <fstream>
#include <queue>
#include <vector>

#define N 100050

using namespace std;

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

int x,y,n,i,s,m,lg[N], t[N],v[N];
vector <int> gr[N];
queue <int> q;
bool sel[N];

void bf(int x)
{
    sel[x]=true;
    q.push(x);
    while (!q.empty())
    {
        int nod=q.front();
        for (auto it:gr[nod])
            if (!sel[it])
        {
            q.push(it);
            sel[it]=true;
            lg[it]=lg[nod]+1;
        }
        q.pop();

    }
}
int main()
{
    f>>n>>m>>s;

    for (i=1; i<=m; i++)
    {
        f>>x>>y;
        gr[x].push_back(y);
    }
     bf(s);
    for(i=1;i<=n;i++)
        if (i!=s&& lg[i]==0)g<<-1<<" ";
            else g<<lg[i]<<" ";
   g<<'\n';
    return 0;
}