Problems > Dynamic Range XOR

Dynamic Range XOR

Difficulty: 1700 4000 ms 128 MB

segment-tree

Support two operations on an array: U i v assigns ai = v, and Q l r prints the XOR (values are taken as given, two's complement not involved — inputs here are non-negative after |·|? No: XOR of possibly-negative is undefined, so inputs are made non-negative by the generator; treat them as plain integers) of al..r. Operations arrive interleaved, so precomputed prefixes go stale — a tree structure is required.

Input: the first line has N and Q; the second line has the initial array; each of the next Q lines is an operation.

Output: one line per Q operation with the requested XOR (values are taken as given, two's complement not involved — inputs here are non-negative after |·|? No: XOR of possibly-negative is undefined, so inputs are made non-negative by the generator; treat them as plain integers).

Constraints:

  • 1 ≤ N, Q ≤ 105
  • |values| ≤ 106

Sample Tests

Input 1
5 4
1 2 3 4 5
Q 2 4
U 3 10
Q 2 4
Q 1 5
Output 1
5
12
8
Input 2
1 2
7
U 1 -5
Q 1 1
Output 2
5

Read the Editorial

Discussion (opens after you solve — no spoilers before)

No comments yet.

Submit Your Solution

Log in or create a free account to run and submit code.