#include <bits/stdc++.h>
using namespace std;
vector<bool> safe;
int S;
set<pair<int, int>> vis;
void dfs(int cur, int speed) {
if (vis.count(pair<int, int>(cur, speed)) != 0)
return;
if (cur > safe.size())
return;
vis.insert(pair<int, int>(cur, speed));
vector<int> newSpeeds = {max(speed - 1, 1), speed, speed + 1};
for (auto s : newSpeeds) {
if (cur + s < safe.size() && safe[cur + s])
dfs(cur + s, s);
}
return;
}
int main() {
safe = {true, false, true, true, true, false, true, true, false, true, true};
S = 4;
dfs(0, S);
vector<bool> reachable(safe.size());
for (auto i : vis) {
reachable[i.first] = true;
}
for (auto i : reachable) {
cout << i << ' ';
}
cout << endl;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdmVjdG9yPGJvb2w+IHNhZmU7CmludCBTOwpzZXQ8cGFpcjxpbnQsIGludD4+IHZpczsKdm9pZCBkZnMoaW50IGN1ciwgaW50IHNwZWVkKSB7CiAgICBpZiAodmlzLmNvdW50KHBhaXI8aW50LCBpbnQ+KGN1ciwgc3BlZWQpKSAhPSAwKQogICAgICAgIHJldHVybjsKICAgIGlmIChjdXIgPiBzYWZlLnNpemUoKSkKICAgICAgICByZXR1cm47CiAgICB2aXMuaW5zZXJ0KHBhaXI8aW50LCBpbnQ+KGN1ciwgc3BlZWQpKTsKICAgIHZlY3RvcjxpbnQ+IG5ld1NwZWVkcyA9IHttYXgoc3BlZWQgLSAxLCAxKSwgc3BlZWQsIHNwZWVkICsgMX07CiAgICBmb3IgKGF1dG8gcyA6IG5ld1NwZWVkcykgewogICAgICAgIGlmIChjdXIgKyBzIDwgc2FmZS5zaXplKCkgJiYgc2FmZVtjdXIgKyBzXSkKICAgICAgICAgICAgZGZzKGN1ciArIHMsIHMpOwogICAgfQogICAgcmV0dXJuOwp9CgppbnQgbWFpbigpIHsKICAgIHNhZmUgPSB7dHJ1ZSwgZmFsc2UsIHRydWUsIHRydWUsIHRydWUsIGZhbHNlLCB0cnVlLCB0cnVlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZX07CiAgICBTID0gNDsKICAgIGRmcygwLCBTKTsKICAgIHZlY3Rvcjxib29sPiByZWFjaGFibGUoc2FmZS5zaXplKCkpOwogICAgZm9yIChhdXRvIGkgOiB2aXMpIHsKICAgICAgICByZWFjaGFibGVbaS5maXJzdF0gPSB0cnVlOwogICAgfQogICAgZm9yIChhdXRvIGkgOiByZWFjaGFibGUpIHsKICAgICAgICBjb3V0IDw8IGkgPDwgJyAnOwogICAgfQogICAgY291dCA8PCBlbmRsOwp9