题目描述
小阳手中一共有 n 个贝壳,每个贝壳都有颜色,且初始第 i 个贝壳的颜色为 c o l i col_i coli 。现在小阳有 3 种操作:
1 l r x:给 [l,r] 区间里所有贝壳的颜色值加上 x 。
2 l r:询问 [l,r] 区间里所有相邻贝壳 颜色值的差(取绝对值) 的最大值(若 l =r 输出 0)。
3 l r :询问 [l,r] 区间里所有贝壳颜色值的最大公约数。
输入描述:
第一行输入两个正整数 n,m,分别表示贝壳个数和操作个数。
第二行输入 n 个数 c o l i col_i coli ,表示每个贝壳的初始颜色。
第三到第 m + 2 行,每行第一个数为 opt,表示操作编号。接下来的输入的变量与操作编号对应。
输出描述:
共 m 行,对于每个询问(操作 2 和操作 3)输出对应的结果。
示例1
输入
5 6
2 2 3 3 3
1 2 3 3
2 2 4
3 3 5
1 1 4 2
3 2 3
2 3 5
输出
3
3
1
3
备注:
1 ≤ n , m ≤ 1 0 5 , 1 ≤ c o l i , x ≤ 1 0 3 , 1 ≤ o p t ≤ 3 , 1 ≤ l ≤ r ≤ n 1 \leq n,m \leq 10^5,1 \leq col_i,x \leq 10^3,1 \leq opt \leq 3,1 \leq l \leq r \leq n 1≤n,m≤105,1≤coli,x≤103,1≤opt≤3,1≤l≤r≤n
g c d ( a , b ) = g c d ( a , b − a ) gcd(a,b)=gcd(a,b-a) gcd(a,b)=gcd(a,b−a)
g c d ( a , b , c ) = g c d ( a , b − a , c − b ) gcd(a,b,c)=gcd(a,b-a,c-b) gcd(a,b,c