← All problems

985. Sum of Even Numbers After Queries

MediumOpen on LeetCodeProblem statement

Problem Statement

985. Sum of Even Numbers After Queries

Medium


You are given an integer array nums and an array queries where queries[i] = [vali, indexi].

For each query i, first, apply nums[indexi] = nums[indexi] + vali, then print the sum of the even values of nums.

Return an integer array answer where answer[i] is the answer to the ith query.

 

Example 1:

Input: nums = [1,2,3,4], queries = [[1,0],[-3,1],[-4,0],[2,3]]
Output: [8,6,2,4]
Explanation: At the beginning, the array is [1,2,3,4].
After adding 1 to nums[0], the array is [2,2,3,4], and the sum of even values is 2 + 2 + 4 = 8.
After adding -3 to nums[1], the array is [2,-1,3,4], and the sum of even values is 2 + 4 = 6.
After adding -4 to nums[0], the array is [-2,-1,3,4], and the sum of even values is -2 + 4 = 2.
After adding 2 to nums[3], the array is [-2,-1,3,6], and the sum of even values is -2 + 6 = 4.

Example 2:

Input: nums = [1], queries = [[4,0]]
Output: [0]

 

Constraints:

C++

Source file
class Solution {
public:
    vector<int> sumEvenAfterQueries(vector<int>& nums, vector<vector<int>>& queries) {
        vector<int> ans;
        int eSum = 0;
        for(auto n:nums)
            if(!(n%2))
                eSum+=n;
        cout<<eSum;
        for(auto q: queries){
            eSum -= nums[q[1]]%2?0:nums[q[1]];
            nums[q[1]]+=q[0];
            eSum += nums[q[1]]%2?0:nums[q[1]];
            ans.push_back(eSum);
        }
        return ans;
    }
};