int* decrypt(int* code, int codeSize, int k, int* returnSize){
*returnSize = codeSize;
int* arr = (int*)calloc(sizeof(int), codeSize);
int i, left, right;
for (i = 1; i<codeSize; i++)
code[i] += code[i - 1];
for (int i = 0; i<codeSize && k != 0; i++){
if (k>0){
arr[i] = code[(i + k) % codeSize] - code[i];
if ((i + k) % codeSize < i)
arr[i] += code[codeSize - 1];
}
else{
arr[i] = code[(i - 1 + codeSize) % codeSize] - code[(i + k - 1+codeSize)%codeSize];
if ((i - 1 + codeSize) % codeSize < (i + k - 1 + codeSize) % codeSize)
arr[i] += code[codeSize - 1];
}
}
return arr;
}