Pagini recente » Cod sursa (job #764668) | Cod sursa (job #2814735) | Cod sursa (job #2827546) | Cod sursa (job #2155105) | Cod sursa (job #543831)
Cod sursa(job #543831)
#include<fstream.h>
#define maxn 100000
ifstream f("bfs.in");
ofstream g("bfs.out");
long m,n,s,i,j,v[maxn][maxn],cost[maxn],viz[maxn],coada[maxn],k=1;
void citire(){
int x,y;
f>>n>>m>>s;
for(i=1;i<=m;i++)
f>>x>>y,v[x][y]=1;
}
void parclat(int nod){
for(int j=1;j<=n;j++)
if(viz[j]==0&&v[nod][j]==1)
coada[++k]=j,cost[j]=cost[nod]+1,viz[j]=1;
}
int main(){
citire();
coada[1]=s,viz[s]=1;
for(i=1;i<=n;i++)
parclat(coada[i]);
for(i=1;i<=n;i++)
if(cost[i]==0&&i==s)
g<<0<<' ';
else
if(cost[i]==0)
g<<-1<<' ';
else
g<<cost[i]<<' ';
g<<'\n';
g.close();
return 0;
}