Cod sursa(job #2382986)

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

using namespace std;

vector <int> graph[100005];
int coada[100005];
int dist[100005];
int viz[100005];
void bfs(int s){
 coada[1]=s;
 viz[s]=1;
 dist[s]=0;
 int left=1,right=1;
 int i;
  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++;
    }
}
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);
    }
    fill(dist+1,dist+N+1,-1);
    bfs(s);
    for(i=1;i<=N;i++)
      g<<dist[i]<<" ";
    return 0;
}