Cod sursa(job #2418043)

Utilizator bluestorm57Vasile T bluestorm57 Data 3 mai 2019 11:57:25
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.89 kb
#include <fstream>
#include <vector>
#include <deque>

using namespace std;

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

const int NMAX = 100005;
int n,m,s,viz[NMAX],nod,sol[NMAX],sz;
vector <int> v[NMAX];
deque  <int> p;

int main(){
    int i,x,y;
    f >> n >> m >> s;
    for(i = 1 ; i <= m ; i++){
        f >> x >> y;
        v[x].push_back(y);
    }

    p.push_back(s);
    viz[s] = 1;
    while(!p .empty()){
        nod = p[0];
        sz = v[nod].size();
        for(i = 0 ; i < sz ; i++){
            if(!viz[v[nod][i]]){
                p .push_back(v[nod][i]);
                sol[v[nod][i]] = sol[nod] + 1;
                viz[v[nod][i]] = 1;
            }
        }
        p.pop_front();
    }

    for(i = 1 ; i <= n ; i++)
        if(sol[i] == 0 && i != s)
            g << -1 << " ";
        else
            g << sol[i] << " ";

return 0;
}