Pagini recente » Cod sursa (job #2289246) | Cod sursa (job #104485) | Cod sursa (job #1245745) | Cod sursa (job #233271) | Cod sursa (job #2370140)
#include <bits/stdc++.h>
#define INF 1<<30
#define dim 100005
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
int n, m, i, j, s, d[dim];
vector <int > v[dim];
deque < int > Q;
void bfs( int n, int d[] , int start)
{
Q.push_back(start);
d[start] = 0;
while ( !Q.empty())
{
int nod = Q.front();
Q.pop_front();
int l = v[nod].size();
for ( i = 0 ; i < l ; i++)
if( d[v[nod][i]] == INF )
{
d[v[nod][i]] = d[nod]+1;
Q.push_back( v[nod][i] );
}
}
}
int main()
{
f >> n >> m >> s;
for ( i = 1; i <= n ; i++ )
d[i] = INF;
while (m--)
{
int x, y;
f >> x >> y ;
v[x].push_back(y);
}
bfs( n, d, s);
for( i = 1 ; i <= n ; i++)
if ( d[i] == INF)
g << -1 << " " ;
else
g << d[i] << " ";
return 0;
}