My first solution to this easy problem passed but only faster than 6% of submissions which means we still have some room for improvements.

class Solution {
fun sumEvenAfterQueries(A: IntArray, queries: Array<IntArray>): IntArray {
var currentSum = A.map { if(it % 2 == 0) it else 0 }.sum()

for(x in 0 until queries.size){
val query = queries[x]
val oldValue = A[query[1]]
A[query[1]] += query[0]

when {
A[query[1]] % 2 == 0 -> {
when {
oldValue % 2 == 0 -> currentSum += query[0]
else -> currentSum += A[query[1]]
}
}

oldValue % 2 == 0 -> currentSum -= oldValue
}

}


Runtime: 404 ms, faster than 43.75% of Kotlin online submissions for Sum of Even Numbers After Queries.

The first version looks similar except that for every loop in for-loop, we also loop through the array A to get the sum of the even values. I realized that we can just precompute the sum of even values of A and then maintain a running variable which holds the current sum of even values. Based on the previous and currently modified value of A[index], we can decide whether we need to increment the current sum or decrement it.