Pagini recente » Cod sursa (job #1043829) | Cod sursa (job #1021213) | Cod sursa (job #1412221) | Cod sursa (job #602409) | Cod sursa (job #2498443)
#include <fstream>
#include <vector>
#include <algorithm>
#define f in
#define g out
using namespace std;
ifstream in ( "bfs.in" );
ofstream out( "bfs.out" );
int nod, vecin, p, u, n, m, s, i, x, y;
vector<int> L[100009];
int d[100009], cost[100009];
int main() {
f>>n>>m>>s;
for ( ; m--; ){
f>>x>>y;
L[x].push_back(y);
}
d[1] = s;
cost[s] = 1;
p = u = 1;
while ( p <= u ) {
nod = d[p];
for ( i=0; i < L[nod].size(); i++ ){
vecin = L[nod][i];
if ( !cost[vecin] ){
cost[vecin] = cost[nod]+1;
d[++u] = vecin;
}
}
p++;
}
for ( i=1; i <= n; i++ )
g<< cost[i]-1 << " ";
return 0;
}