Interval GCD

Luogu
IDLGP10463
Time1000ms
Memory512MB
DifficultyP5
线段树最大公约数 gcd
给定一个长度为 $N$ 的数列 $a$,以及 $M$ 条指令,每条指令可能是以下两种之一: 1. `C l r d`,表示把 $a_l,a_{l+1},…,a_r$ 都加上 $d$。 2. `Q l r`,表示询问 $a_l,a_{l+1},…,a_r$ 的最大公约数($\gcd$)。 对于每个询问,输出一个整数表示答案。 ## Input 第一行两个整数 $N,M$。 第二行 $N$ 个整数,分别表示 $a_1,a_2,\dots,a_N$。 接下来 $M$ 行表示 $M$ 条指令,每条指令的格式如题目描述所示。 ## Output 对于每个询问,输出一个整数表示答案,每个答案占一行。 [samples] ## Note 对于 $100\%$ 的测试数据,$N \le 5\times10^5$,$M \le 10^5$,$1 \le a_i \le 10^{18}$,$|d| \le 10^{18}$,保证数据在计算过程中不会超过 long long 范围。
Samples
Input #1
5 5
1 3 5 7 9
Q 1 5
C 1 5 1
Q 1 5
C 3 3 6
Q 2 4
Output #1
1
2
4
API Response (JSON)
{
  "problem": {
    "name": "Interval GCD",
    "description": {
      "content": "给定一个长度为 $N$ 的数列 $a$,以及 $M$ 条指令,每条指令可能是以下两种之一: 1. `C l r d`,表示把 $a_l,a_{l+1},…,a_r$ 都加上 $d$。 2. `Q l r`,表示询问 $a_l,a_{l+1},…,a_r$ 的最大公约数($\\gcd$)。 对于每个询问,输出一个整数表示答案。",
      "description_type": "Markdown"
    },
    "platform": "Luogu",
    "limit": {
      "time_limit": 1000,
      "memory_limit": 524288
    },
    "difficulty": {
      "LuoguStyle": "P5"
    },
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "LGP10463"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "给定一个长度为 $N$ 的数列 $a$,以及 $M$ 条指令,每条指令可能是以下两种之一:\n\n1. `C l r d`,表示把 $a_l,a_{l+1},…,a_r$ 都加上 $d$。\n2. `Q l r`,表示询问 $a_l,a_{l+1},…,a_r$ 的最大公约数($\\gcd$)。\n\n对于每个询问,输出一个整数表示答案。\n\n## Input\n\n第一行两个整数 $N,M$。\n\n第二行 $N$ ...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments