#include <iostream>
#include <vector>
 
class Solution {
public:
  std::vector<int> decrypt(std::vector<int>& code, int k) {
    if (k == 0) return std::vector<int>(code.size(), 0);
    int sum = 0, N = code.size();
    std::vector<int> result;
    
    if (k > 0) {
      for (int i = 1; i < k + 1; i++) {
        sum += code[i % N];
      }
 
      result.push_back(sum);
      int beg = 1, end = k;
 
      while (result.size() != N) {
        end++;
        sum = sum - code[beg % N] + code[end % N];
        beg++;
        result.push_back(sum);
      }
 
      return result;
    }
 
    for (int i = N - 1; i > N + k; i--) {
      sum += code[i % N];
      std::cout << " +code[" << (i - 1 + N) % N << "]\n";
    }
 
    result.push_back(sum);
 
    return result;
    
  }
};
 
template<typename T>
void printVec(const std::vector<T>& _v) {
  for (const T& x: _v) std::cout << x << " ";
  std::cout << "\n";
}
 
int main() {
  Solution s;
  int k = -2;
  std::vector<int> ip = {2, 4, 9, 3};
  std::vector<int> ip2 = {5, 7, 1, 4};
  auto r = s.decrypt(ip, k);
  printVec(r);
  return 0;
}