Pagini recente » Cod sursa (job #101566) | Cod sursa (job #2186489) | Cod sursa (job #1436981) | Cod sursa (job #2813057) | Cod sursa (job #1023656)
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
const int N = 100005;
ifstream in ("bfs.in");
ofstream out ("bfs.out");
vector <int> muchii[N];
queue <int> coada;
int n, m;
int sursa;
int d[N];
void read()
{
in >> n >> m >> sursa;
int x, y;
for (int i = 0; i < m; i++) {
in >> x >> y;
muchii[x].push_back(y);
}
d[sursa] = 1;
}
void bfs()
{
coada.push(sursa);
while (!coada.empty()) {
int x = coada.front();
coada.pop();
for (int i = 0; i < muchii[x].size(); i++) {
int y = muchii[x][i];
if (d[y] == 0) {
d[y] = 1 + d[x];
coada.push(y);
}
}
}
}
int main()
{
read();
bfs();
for (int i = 1; i <= n; i++) {
out << d[i] - 1 << " ";
}
out << "\n";
return 0;
}