Pagini recente » Cod sursa (job #3131961) | Cod sursa (job #1400905) | Cod sursa (job #2588699) | Cod sursa (job #425807) | Cod sursa (job #2194402)
#include <fstream>
#include<vector>
#include<deque>
#define inf 100005
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
int n, m, st, i, nod, d[100005], x, y;
vector < int > v[100005];
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();
for ( i = 0 ; i < v[nod].size() ; 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 >> st;
for ( i = 1 ; i <= n ; i++ )
d[i] = inf;
while ( m-- )
{
f >> x >>y ;
v[x].push_back(y);
}
bfs( n, d, st);
for( i = 1 ; i <= n ; i++ )
if ( d[i] == inf )
g << -1 << " ";
else
g << d[i] << " ";
return 0;
}