Pagini recente » Cod sursa (job #510996) | Cod sursa (job #2914082) | Cod sursa (job #1368939) | Cod sursa (job #856416) | Cod sursa (job #877464)
Cod sursa(job #877464)
#include <fstream>
using namespace std;
#define nmax 100002
ifstream f("bfs.in");
ofstream g("bfs.out");
int main()
{
int n,m,s,pi,pf,i,c[nmax],cost[nmax],viz[nmax],a[400][400],e1,e2;
f>>n>>m>>s;
for (i=1;i<=m;i++)
{
f>>e1>>e2;
a[e1][e2]=1;
}
for (i=1;i<=n;i++)
{
cost[i]=-1;
viz[i]=0;
}
pi=1; pf=1; cost[s]=0; viz[s]=1; c[1]=s;
while (pi<=pf)
{
for (i=1;i<=n;i++)
{
if (a[c[pi]][i]==1&&viz[i]==0)
{
pf++; c[pf]=i; viz[i]++; cost[i]=cost[c[pi]]+1;
}
}
pi++;
}
for (i=1;i<=n;i++)
{
g<<cost[i]<<" ";
}
f.close();
g.close();
return 0;
}