https://leetcode.com/problems/defuse-the-bomb/description/ Easy

Решение

class Solution {
    fun decrypt(code: IntArray, k: Int): IntArray {
        val n = code.size
        val result = IntArray(n)
        if (k == 0) return result
        val arr = IntArray(2 * n) { i -> code[i % n] }
        val ps = IntArray(2 * n + 1)
        for (i in arr.indices) ps[i + 1] = ps[i] + arr[i]
        if (k > 0) {
            for (i in 0 until n) {
                result[i] = ps[i + k + 1] - ps[i + 1]
            }
        } else {
            for (i in 0 until n) {
                result[i] = ps[n + i] - ps[n + i + k]
            }
        }
        return result
    }
}