Cod sursa(job #2650979)

Utilizator patriciaxdBraica Patricia patriciaxd Data 21 septembrie 2020 11:12:09
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.86 kb
#include <bits/stdc++.h>

using namespace std;
ifstream in("bfs.in");
ofstream out("bfs.out");
queue <int> Coada;
vector <int>Muchiinod[100005];
int N,M,Nodstart;
int Distanta[100005];
void bfs()
{ while(!Coada.empty())
    { int Nod=Coada.front();
      Coada.pop();
      for(size_t i=0;i<Muchiinod[Nod].size();i++)
      { int Vecin=Muchiinod[Nod][i];
        if(Distanta[Vecin]==-1)
        { Coada.push(Vecin);
          Distanta[Vecin]=Distanta[Nod]+1;
        }
      }
    }
}
void citire()
{ in>>N>>M>>Nodstart;
  for(int i=1;i<=M;i++)
  { int x,y;
      in>>x>>y;
      Muchiinod[x].push_back(y);
  }
  for(int i=1;i<=N;i++)
    Distanta[i]=-1;
  Distanta[Nodstart]=0;
  Coada.push(Nodstart);
  bfs();
  for(int i=1;i<=N;i++)
    out<<Distanta[i]<<' ';
}

int main()
{ citire();

    in.close();
    out.close();
    return 0;
}