Cod sursa(job #2634023)

Utilizator PulpysimusJurjiu Tandrau Darius Stefan Pulpysimus Data 9 iulie 2020 16:41:10
Problema BFS - Parcurgere in latime Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.7 kb
#include <bits/stdc++.h>

using namespace std;
ifstream f("date.in");
ofstream g("bfs.out");
queue <int> Q;
vector <int> G[100001];
int src, n, m,dist[100001];
bool viz[100001];
int read()
{int a,b;
    f>>n>>m>>src;
    for(int i=1;i<=m;i++)
    {
        f>>a>>b;
        G[a].push_back(b);

    }
}
void BFS()
{

    while(!Q.empty())
    {

        for( auto x:G[Q.front()])
    {
       if(dist[x]==0 && x!=src){ Q.push(x);
        dist[x]=dist[Q.front()]+1;
    }
    }
Q.pop();
    }
}
int main()
{
    read();

    Q.push(src);

    BFS();
    for(int i=1;i<=n;i++)
    {
        if(dist[i]==0 && i!=src) cout<<-1<<" ";
        else cout<<dist[i]<<" ";
    }
}