Pagini recente » Cod sursa (job #1614154) | Cod sursa (job #832585) | Istoria paginii runda/oni11/clasament | Cod sursa (job #2782324) | Cod sursa (job #957961)
Cod sursa(job #957961)
#include <iostream>
#include<fstream>
#include<cstdio>
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
long a[10000][10000],p,nod,q[10000],t[10000],lg[10000],u;
bool sel[10000];
long n,m;
void bf(int x)
{ long i;
sel[x]=true; q[1]=x; t[x]=0;
lg[x]=0; p=u=1;
while(p<=u)
{ nod=q[p];
for(i=1;i<=n;i++)
if(a[nod][i]&&!sel[i])
{ q[++u]=i;
t[i]=nod; sel[i]=true;
lg[i]=lg[nod]+1;
}
p++;
}
for(i=1;i<=n;i++) if(!sel[i]) lg[i]=-1;
}
int main()
{ int i,j,z,y,x;
f>>n;
f>>m;
f>>x;
for(i=1;i<=m;i++)
{ f>>z;
f>>y;
a[z][y]=1;
}
bf(x);
for(i=1;i<=n;i++)
g<<lg[i]<<" ";
f.close(); g.close();
return 0;
}