Dynamic Range GCD
Support two operations on an array: U i v assigns ai = v, and Q l r prints the gcd (of absolute values; gcd(0,x)=|x|) 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 gcd (of absolute values; gcd(0,x)=|x|).
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
1 2 1
Input 2
1 2 7 U 1 -5 Q 1 1
Output 2
5
Discussion (opens after you solve — no spoilers before)
No comments yet.