题目描述
给定一个长度为 N 的数列 A,以及 M 条指令,每条指令可能是以下两种之一:
C l r d,表示把 A[l],A[l+1],…,A[r] 都加上 d。
Q l r,表示询问 A[l],A[l+1],…,A[r] 的最大公约数(gcd)。
对于每个询问,输出一个整数表示答案。
输入格式
第一行两个整数 N,M。
第二行 N 个整数 A[i]。
接下来 M 行表示 M 条指令,每条指令的格式如题目描述所示。
输出格式
对于每个询问,输出一个整数表示答案。
每个答案占一行。
样例
输入样例:
5 5
1 3 5 7 9
Q 1 5
C 1 5 1
Q 1 5
C 3 3 6
Q 2 4
输出样例:
1
2
4
样例解释
初始数组:[1,3,5,7,9]
Q 1 5 → gcd(1,3,5,7,9)=1
C 1 5 1 → 每个元素加1 → [2,4,6,8,10]
Q 1 5 → gcd(2,4,6,8,10)=2
C 3 3 6 → 第3个元素加6 → [2,4,12,8,10]
Q 2 4 → gcd(4,12,8)=4
数据范围
- N≤500000
- M≤100000
- 1≤A[i]≤1018
- ∣d∣≤1018
- 保证数据在计算过程中不会超过
long long 范围
时空限制