Cod sursa(job #2019598)

Utilizator trz59lollMurariu Iulian trz59loll Data 8 septembrie 2017 09:28:15
Problema BFS - Parcurgere in latime Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include <fstream>
using namespace std;
ifstream f("bsf.in");
ofstream g("bfs.out");
int n,m,x,y,k,a[101][101],c[101],i,j,v[101];
int p,u,nc,d[101];
void citire()
{f>>n>>m>>k;
int q,w;
    for(i=1;i<=m;i++)
    {f>>q>>w;
     a[q][w]=1;
    }
}

int bfs(int np)
{
p=u=1;
v[np]=1;
c[1]=np;
while(p<=u)
{nc=c[p];
    for(i=1;i<=n;i++)
    if(a[nc][i]==1&&v[i]==0){c[++u]=i;d[i]=d[nc]+1;
    v[i]=1;}
 p++;

}
}

int main()
{ citire();
bfs(k);
for(i=1;i<=n;i++)
if(v[i]==0)d[i]=-1;
for(i=1;i<=n;i++)g<<d[i]<<" ";
    return 0;
}