Pagini recente » Cod sursa (job #814124) | Cod sursa (job #24374) | Cod sursa (job #12676) | Cod sursa (job #202791) | Cod sursa (job #1698994)
#include <iostream>
#include<fstream>
using namespace std;
int a[10000][10000], c[10000],nrpasi[10000];
bool vizitat[10000];
int main()
{
int n,m,s,p,u,i;
ifstream f("bfs.in");
ofstream g("bfs.out");
f>>n>>m>>s;
for(i=1; i<=m; i++)
{
int x,y;
f>>x>>y;
a[x][y]=1;
}
c[1]=s;
p=1;
u=1;
nrpasi[s]=0;
vizitat[s]=true;
while(p<=u)
{
int nc=c[p];
p=p+1;
for(i=1; i<=n; i++)
if(a[nc][i]==1 && !vizitat[i]==true)
{
nrpasi[i]=nrpasi[nc]+1;
u=u+1;
c[u]=i;
vizitat[i]=true;
}
}
for(i=1; i<=n; i++)
{
if(vizitat[i]==false)
{
nrpasi[i]=-1;
}
g<<nrpasi[i]<<" ";
}
return 0;
}