Pagini recente » Cod sursa (job #3262875) | Cod sursa (job #2627900) | Cod sursa (job #458774) | Cod sursa (job #2391228) | Cod sursa (job #645558)
Cod sursa(job #645558)
# include <cstdio>
# include <vector>
# include <queue>
# define Nmax 100001
using namespace std;
vector<int> v[Nmax];
queue <int> Q;
int n,m,s,x,y,cost[Nmax];
int main()
{freopen ("bfs.in", "r", stdin);
freopen ("bfs.out", "w", stdout);
scanf ("%d%d%d", &n, &m ,&s);
for (int i = 1; i <= m; ++i)
{scanf ("%d %d", &x, &y); v[x].push_back(y);}
for (int i = 1; i <= n; ++i) cost[i]=-1;
Q.push(s); cost[s]=0;
while( !Q.empty() ) //3
{x=Q.front(); Q.pop(); //4
for(int i=0; i<v[x].size(); ++i ) //5
{y=v[x][i];
if( cost[y]==-1 )
{Q.push(y); cost[y]=cost[x]+1;}
}
}
for (int i = 1; i <= n; ++i) printf("%d ",cost[i]);
printf("\n");
return 0;
}