Cod sursa(job #3128754)

Utilizator otilia_nedelcu@yahoo.comGutanu Tiberiu [email protected] Data 10 mai 2023 20:35:21
Problema BFS - Parcurgere in latime Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.69 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
int n,m,s,xi[200001],v[200001],a[2001][2001],i,x,y;
void bfs(int start)
{
  int i,k,st,dr,nr;
  st=dr=1;
  xi[1]=start;
  v[start]=1;
  while(st<=dr)
  {
    k=xi[st];
    for(i=1;i<=n;i++)
      if(v[i]==0 && a[k][i]==1)
      {
        v[i]=v[i-1]+1;
        xi[++dr]=i;
      }
    st++;
  }
  for(i=1;i<=n;i++)
    if(i==s)
        g<<0<<" ";
    else if(i!=s&&v[i]==0)
        g<<-1<<" ";
    else
        g<<v[i]<<" ";

}
int main()
{
    f>>n>>m>>s;
    for(i=1;i<=m;i++)
    {
        f>>x>>y;
        a[x][y]=1;
    }
    bfs(s);
    return 0;
}