Pagini recente » Cod sursa (job #2392599) | Cod sursa (job #323480) | Cod sursa (job #2894193) | Cod sursa (job #172510) | Cod sursa (job #899847)
Cod sursa(job #899847)
#include <iostream>
#include<fstream>
using namespace std;
int *a[50001];
int main()
{
fstream f("bfs.in",ios::in),g("bfs.out",ios::out);
int u,p,k=1,x,y,j,n,i,m,S,viz[50003];
f>>n>>m>>S;
for(i=1;i<=n+1;i++)
a[i]=new int[50001];
for(i=1;i<=m;i++)
{
f>>x>>y;
a[x][y]=1;
}
int C[50003],vf;
viz[S]=1;
p=u=0;
C[++u]=S;
while(p<u)
{
vf=C[++p];
for(i=1;i<=n;i++)
if(a[vf][i]!=0&&viz[i]==0)
{
C[++u]=i;
viz[i]=viz[vf]+1;
}
}
for(i=1;i<=n;i++)
if(viz[i]==0)
g<<-1<<" ";
else
g<<viz[i]-1<<" ";
}