Cod sursa(job #2471967)

Utilizator carburatorMitica Carburator carburator Data 11 octombrie 2019 20:20:07
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.69 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
vector<int> v[1000001]; deque<int> d; int len[1000001],V,E,P,i,x1,x2,p,auxp;
int main()
{
    //citire
    fin>>V>>E>>P; for(i=1;i<=E;i++){fin>>x1>>x2;v[x1].push_back(x2);}

    //lee prin graf :))
    d.push_back(P);
    while(!d.empty()){
        p=d.front(); d.pop_front();
        while(!v[p].empty()){
         auxp=v[p].back(); v[p].pop_back();
         if(!len[auxp] && auxp!=P){d.push_back(auxp); len[auxp]=len[p]+1;}
        }
        }
    for(i=1;i<=V;i++){
        if(len[i])fout<<len[i]<<" ";
        else if(i==P)fout<<"0 ";
        else fout<<"-1 ";
    }
    return 0;
}