Cod sursa(job #2374275)

Utilizator marcogoldPop Mihali Marco Silviu marcogold Data 7 martie 2019 17:46:03
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.79 kb
#include <iostream>
#include <fstream>
#include <queue>
using namespace std;

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


int dist[100004];
int n,m,start,a,b;
queue <int> coada;
vector<int> vecini[100005];
int viz[100005];
int main()
{

fi>>n>>m>>start;

for(int i=1;i<=m;i++)
{
    fi>>a>>b;
    vecini[a].push_back(b);
}
for(int i=1;i<=n;i++) dist[i]=-1;

coada.push(start);
viz[start]=true;
dist[start]=0;

while(coada.empty()==false)
{
    int Curent=coada.front();coada.pop();

    for(auto k:vecini[Curent])
    {
        if(viz[k]==false)
        {
            viz[k]=true;
            dist[k]=dist[Curent]+1;
            coada.push(k);
        }
    }
}


   for(int i=1;i<=n;i++)
    fo<<dist[i]<<" ";

fi.close();
fo.close();
    return 0;
}