fork download
  1. #include <cstdio>
  2. #include <array>
  3.  
  4. namespace {
  5. template <size_t N>
  6. static constexpr auto neighbor_sum (const int (&input)[N]) {
  7. std::array<int, N> out = {0};
  8.  
  9. if (N >= 2) {
  10. out[0] = input[1];
  11. out[N - 1] = input[N - 2];
  12.  
  13. for (size_t i = 1; i < (N - 1); ++i) {
  14. out[i] = input[i - 1] + input[i + 1];
  15. }
  16. }
  17.  
  18. return out;
  19. }
  20. }
  21.  
  22. int main() {
  23. for (int v : neighbor_sum({1,3,4,5,0,1,8})) {
  24. printf("%d ", v);
  25. }
  26. puts("");
  27. return 0;
  28. }
Success #stdin #stdout 0s 15232KB
stdin
Standard input is empty
stdout
3 5 8 4 6 8 1