#include <cstdio>
#include <array>
namespace {
template <size_t N>
static constexpr auto neighbor_sum (const int (&input)[N]) {
std::array<int, N> out = {0};
if (N >= 2) {
out[0] = input[1];
out[N - 1] = input[N - 2];
for (size_t i = 1; i < (N - 1); ++i) {
out[i] = input[i - 1] + input[i + 1];
}
}
return out;
}
}
int main() {
for (int v : neighbor_sum({1,3,4,5,0,1,8})) {
printf("%d ", v);
}
puts("");
return 0;
}
I2luY2x1ZGUgPGNzdGRpbz4KI2luY2x1ZGUgPGFycmF5PgoKbmFtZXNwYWNlIHsKCXRlbXBsYXRlIDxzaXplX3QgTj4KCXN0YXRpYyBjb25zdGV4cHIgYXV0byBuZWlnaGJvcl9zdW0gKGNvbnN0IGludCAoJmlucHV0KVtOXSkgewoJCXN0ZDo6YXJyYXk8aW50LCBOPiBvdXQgPSB7MH07CgkJCgkJaWYgKE4gPj0gMikgewoJCQlvdXRbMF0gPSBpbnB1dFsxXTsKCQkJb3V0W04gLSAxXSA9IGlucHV0W04gLSAyXTsKCQkJCgkJCWZvciAoc2l6ZV90IGkgPSAxOyBpIDwgKE4gLSAxKTsgKytpKSB7CgkJCQlvdXRbaV0gPSBpbnB1dFtpIC0gMV0gKyBpbnB1dFtpICsgMV07CgkJCX0KCQl9CgkJCgkJcmV0dXJuIG91dDsKCX0KfQoKaW50IG1haW4oKSB7Cglmb3IgKGludCB2IDogbmVpZ2hib3Jfc3VtKHsxLDMsNCw1LDAsMSw4fSkpIHsKCQlwcmludGYoIiVkICIsIHYpOwoJfQoJcHV0cygiIik7CglyZXR1cm4gMDsKfQ==