/**
* Problem: LeetCode 3653 - XOR After Range Multiplication Queries I
* Difficulty: Medium
* Language: Java
* Author: CodeByTushu
*/
class Solution {
public int xorAfterQueries(int[] nums, int[][] queries) {
long MOD = 1_000_000_007L;
for (int[] query : queries) {
int l = query[0];
int r = query[1];
int k = query[2];
int v = query[3];
for (int idx = l; idx <= r; idx += k) {
nums[idx] = (int) (((long) nums[idx] * v) % MOD);
}
}
int xorSum = 0;
for (int val : nums) {
xorSum ^= val;
}
return xorSum;
}
}
"""
Problem: LeetCode 3653 - XOR After Range Multiplication Queries I
Difficulty: Medium
Language: Python
Author: CodeByTushu
"""
class Solution:
def xorAfterQueries(self, nums: list[int], queries: list[list[int]]) -> int:
MOD = 1_000_000_007
for l, r, k, v in queries:
for idx in range(l, r + 1, k):
nums[idx] = (nums[idx] * v) % MOD
xor_sum = 0
for val in nums:
xor_sum ^= val
return xor_sum
/**
* Problem: LeetCode 3653 - XOR After Range Multiplication Queries I
* Difficulty: Medium
* Language: C++
* Author: CodeByTushu
*/
#include <vector>
using namespace std;
class Solution {
public:
int xorAfterQueries(vector<int>& nums, vector<vector<int>>& queries) {
long long MOD = 1000000007LL;
for (const auto& query : queries) {
int l = query[0];
int r = query[1];
int k = query[2];
int v = query[3];
for (int idx = l; idx <= r; idx += k) {
nums[idx] = (int) ((1LL * nums[idx] * v) % MOD);
}
}
int xorSum = 0;
for (int val : nums) {
xorSum ^= val;
}
return xorSum;
}
};
/**
* Problem: LeetCode 3653 - XOR After Range Multiplication Queries I
* Difficulty: Medium
* Language: JavaScript
* Author: CodeByTushu
*/
/**
* @param {number[]} nums
* @param {number[][]} queries
* @return {number}
*/
var xorAfterQueries = function(nums, queries) {
const MOD = 1000000007;
for (let i = 0; i < queries.length; i++) {
const [l, r, k, v] = queries[i];
for (let idx = l; idx <= r; idx += k) {
nums[idx] = (nums[idx] * v) % MOD;
}
}
let xorSum = 0;
for (let i = 0; i < nums.length; i++) {
xorSum ^= nums[i];
}
return xorSum;
};