Cod sursa(job #2475365)

Utilizator eusebiu_alexandruMorar Eusebiu eusebiu_alexandru Data 16 octombrie 2019 20:09:46
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.81 kb
#include<fstream>

using namespace std;
ifstream f ("bfs.in");
ofstream g ("bfs.out");
int t[3][1000003],dfs[100003],i,j,n,m,s,coada[100003],p=1,u=1,k,star[100003],cost[100003];
int element,coloana,vecin;
int main()
{
  f>>n>>m>>s;
  while(m!=0)
  {
      m--;
      f>>i>>j;
      if(i!=j)
      {
         k++;
         t[0][k]=j;
         t[1][k]=star[i];
         star[i]=k;
      }
  }
 coada[p]=s;
 cost[s]=0;
 while(p<=u)
 {
     element=coada[p];
     coloana=star[element];
     while(coloana)
     {
         vecin=t[0][coloana],coloana=t[1][coloana];
         if(cost[vecin]==0)
             cost[vecin]=cost[coada[p]]+1,coada[++u]=vecin;
     }
     p++;
 }
 cost[s]=0;
 for(i=1;i<=n;i++)
    if(cost[i]==0 && i!=s)
      g<<"-1"<<" ";
     else
     g<<cost[i]<<" ";
}