LeetCode Entry
3653. XOR After Range Multiplication Queries I
Run queries
3653. XOR After Range Multiplication Queries I medium blog post substack youtube

Join me on Telegram
https://t.me/leetcode_daily_unstoppable/1322
Problem TLDR
Run queries #medium
Intuition
Just run queries.
Approach
- cast to long in-place
Complexity
-
Time complexity: \(O(nq)\)
-
Space complexity: \(O(1)\)
Code
// 96ms
fun xorAfterQueries(n: IntArray, q: Array<IntArray>) = n.apply {
for ((l,r,k,v) in q) for (i in l..r step k)
n[i] = ((1L*n[i] * v) % 1000000007).toInt()
}.reduce(Int::xor)
// 56ms
pub fn xor_after_queries(mut n: Vec<i32>, q: Vec<Vec<i32>>) -> i32 {
for v in q { for i in (v[0] as usize..=v[1] as _).step_by(v[2] as _) {
n[i] = (n[i] as i64 * v[3] as i64 % 1000000007) as _
}}
n.into_iter().fold(0, |a, b| a ^ b)
}