Pagini recente » Cod sursa (job #645688) | Cod sursa (job #700198) | Cod sursa (job #1538900) | Cod sursa (job #2539379) | Cod sursa (job #1810598)
#include <fstream>
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
int c[100001],dist[100001],n,m,r,p,u;
bool a[10001][10001],v[100001];
void latime(int r){
int i,k;
p=1;
u=1;
c[u]=r;
dist[r]=0;
v[r]=1;
while(p<=u){
k=c[p];
for(i=1;i<=n;i++)
if(a[k][i]==1&&v[i]==0){
u++;
c[u]=i;
dist[i]=dist[k]+1;
v[i]=1;
}
p++;
}
}
int main()
{
fin>>n>>m>>r;
int k,i,j;
for(k=1;k<=m;k++){
fin>>i>>j;
a[i][j]=1;
if(i==j)
a[i][j]=0;
}
for(i=1;i<=n;i++)
dist[i]=-1;
latime(r);
for(i=1;i<=n;i++)
fout<<dist[i]<<" ";
return 0;
}