Pagini recente » Cod sursa (job #2477216) | Cod sursa (job #2483502) | Cod sursa (job #1383036) | Cod sursa (job #1128014) | Cod sursa (job #1434555)
#include <iostream>
#include <fstream>
using namespace std;
int c[100000],a[10000][10000],viz[100000];
unsigned n;
void bfs(unsigned i,unsigned w)
{
c[i]=w;
unsigned elem=0,j,v[1000];
for(j=1;j<=n;j++)
if(a[i][j]==1&&viz[j]!=1)
{
viz[j]=1;
v[elem]=j;
elem++;
}
for(j=0;j<elem;j++)
bfs(v[j],w+1);
}
int citire()
{
unsigned m,s,x,y;
ifstream f("bfs.in");
f>>n>>m>>s;
viz[s]=1;
unsigned i;
for(i=1;i<=n;i++)
c[i]=-1;
while(f>>x>>y)
a[x][y]=1;
f.close();
return s;
}
int main()
{
bfs(citire(),0);
ofstream g("bfs.out");
for(unsigned i=1;i<=n;i++)
g<<c[i]<<" ";
g.close();
return 0;
}