Cod sursa(job #2270658)

Utilizator 0738076326Simon Wil 0738076326 Data 27 octombrie 2018 12:12:25
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.73 kb
#include <bits/stdc++.h>

using namespace std;

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

vector<int> v[100001];
deque <int>p;
bool viz[100001];
int sol[100001];

int main()
{

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

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

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

    return 0;
}