Cod sursa(job #2019605)

Utilizator trz59lollMurariu Iulian trz59loll Data 8 septembrie 2017 09:47:22
Problema BFS - Parcurgere in latime Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include <fstream>
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
long long n,m,x,y,k,a[10001][10001],c[10001],i,j,v[10001];
long long p,u,nc,d[10001];
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++;

}
return 0;}

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;
}