Cod sursa(job #2220755)

Utilizator Andrei-27Arhire Andrei Andrei-27 Data 12 iulie 2018 14:37:49
Problema BFS - Parcurgere in latime Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include<iostream>
#include <fstream>
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
long a[10001][10001]={0},n,prim=1,ultim=1,c[10001],i,x,y,v[10001]={0},varf,m,s[10001],u;
void bfs(){
    long k;
    while(prim<=ultim)
        {varf=c[prim];
        for(k=1;k<=n;k++)
            if(a[varf][k]&&!v[k]) {ultim++;c[ultim]=k;v[k]=1;s[k]=s[varf]+1;}
    prim++;}}
int main(){
  f>>n>>m>>u;
  for(i=1;i<=m;i++) {f>>x>>y;a[x][y]=1;}
  for(i=1;i<=n;i++) s[i]=-1;
  c[prim]=u;v[u]=1;s[u]=0;
  bfs();
  for(i=1;i<=n;i++) g<<s[i]<<" ";
 return 0;}