Cod sursa(job #2382975)

Utilizator sorina-maria.andreiAndrei Sorina-Maria sorina-maria.andrei Data 18 martie 2019 21:30:15
Problema BFS - Parcurgere in latime Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.84 kb
#include <iostream>
#include <vector>
#include <fstream>

using namespace std;

vector <int> graph[100005];
int coada[100005];
int dist[100005];
int viz[100005];

int main()

{
    ifstream f("bfs.in");
    ofstream g("bfs.out");
    int i,x,y,N,M,s;
        f>>N>>M>>s;
    for(i=0;i<M;i++)
    {
        f>>x>>y;
        graph[x].push_back(y);
    }
    for(i=0;i<N;i++)
     dist[i]=-1;
    coada[0]=s;
    viz[s]=1;
    dist[s]=0;
    int left=0,right=0;
    while(left<=right){
      int index=coada[left];
      int lim=graph[index].size();
      for(i=0;i<lim;i++){
       int vecin=graph[index][i];
       if(!viz[vecin]){
         coada[++right]=vecin;
         dist[vecin]=dist[index]+1;
         viz[vecin]=1;
       }
      }
      left++;
    }
    for(i=0;i<N;i++)
      g<<dist[i]<<" ";
    return 0;
}