Cod sursa(job #2451640)

Utilizator nicolaee2Martinescu Nicolae nicolaee2 Data 27 august 2019 15:34:06
Problema BFS - Parcurgere in latime Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.86 kb
#include <fstream>
#include<bits/stdc++.h>
#include<algorithm>
#include<vector>
using namespace std;

ifstream fin("bfs.in");
ofstream fout("bfs.out");
int n,m,z;
int nrc;

vector<int> ma[100005];


void citire() {

   fin>>n>>m>>z;
   for(int i=1;i<=m;i++) {

      int x,y;
      fin>>x>>y;
      ma[x].push_back(y);


   }

}

int BFS(int z) {
   int c[100005];
   int viz[100005];

   c[1] = z;
   int st=1,dr=1;
   viz[z] = 1;

   while(st<=dr) {

      int x = c[st++];

      for(int i=0;i<ma[x].size();i++)
      {
         if(!viz[ma[x][i]])
         {
            viz[ma[x][i]] = viz[x] + 1;
            c[++dr] = ma[x][i];
         }

      }

   }
   for(int i=1;i<=n;i++)
   {
      if(!viz[i]) fout<<-1<<" ";
      else fout<<viz[i]-1<<" ";
   }

}



int main()
{
   citire();
   BFS(z);


}