#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;
}