光写完代码是不够的,你还得修复三百个 Bug。
将光标放在代码中间某行的末尾。按下 RUL 方向键。现在重复多次。你学会了一个方便的导航技巧。
你吃过配蔓越莓酱的肉丸吗?Kostya 非常喜欢它们,尤其是在半夜做题的时候。事实上,他在电脑前吃得太多了:一些蔓越莓酱从罐子里滴了出来,弄坏了他的键盘。但他仍然必须完成这道题。而且,与他的键盘不同,他不想被卡住!
Kostya 使用的代码文件由 $n$ 行组成,行编号为 $1$ 到 $n$,其中第 $i$ 行包含 $s_i$ 个光标可能的位置,从 $(i, 1)$ 到 $(i, s_i)$,用 $(i, j)$ 表示第 $i$ 行的第 $j$ 个位置。
在某些按键损坏的情况下进行代码导航有点棘手。幸运的是,Kostya 的上(Up)和右(Right)方向键仍然可以正常工作:
- 上 ($\uparrow$):如果光标位于位置 $(i, j)$,若 $i = 1$,则光标保持在原处;否则,它将移动到位置 $(i - 1, \min(j, s_{i-1}))$,其中 $s_{i-1}$ 是第 $i - 1$ 行的长度。
- 右 ($\rightarrow$):如果光标位于位置 $(i, j)$,若 $j < s_i$,则光标移动到 $(i, j + 1)$;否则,它将移动到 $(i + 1, 1)$;特别地,当光标位于 $(n, s_n)$ 时,它将保持在原处。
Kostya 有一种特殊的技巧。他选择一个初始光标位置,并开始执行一个无限的按键序列:$u$ 次“上”,然后是 $r$ 次“右”,接着又是 $u$ 次“上”,然后是 $r$ 次“右”,依此类推。
例如,令 $n = 5$,$u = 2$,$r = 5$,且 $s = \{5, 2, 4, 3, 1\}$。从位置 $(4, 3)$ 开始,前几次按键将按如下方式移动光标:
$$(4, 3) \uparrow (3, 3) \uparrow (2, 2) \rightarrow (3, 1) \rightarrow (3, 2) \rightarrow (3, 3) \rightarrow (3, 4) \rightarrow (4, 1) \dots$$
如果从某个位置开始并执行他的无限序列,Kostya 迟早会让光标到达第一行(即 $i=1$),则该位置被称为成功的(successful)。
你的任务是帮助 Kostya 计算他的代码中存在多少个成功的起始位置。
然而,他的代码还没有写完,所以你还需要处理 $q$ 次更新。在每次更新中,你会得到两个值 $pos$ 和 $x$,你需要将 $s_{pos}$ 赋值为新值 $x$。你需要在任何更新之前以及处理每次更新之后输出问题的答案。
输入格式
第一行包含三个整数:$n$、$u$ 和 $r$($1 \le n \le 10^5$,$1 \le u, r \le 10^{18}$)。
第二行包含 $n$ 个整数 $s_1, s_2, \dots, s_n$($1 \le s_i \le 10^{12}$):每行的位置数。
第三行包含一个整数 $q$($1 \le q \le 10^5$),表示更新的次数。
接下来的 $q$ 行,每行包含两个整数 $pos$ 和 $x$($1 \le pos \le n$,$1 \le x \le 10^{12}$),表示更新操作。
更新是累积的,即每次更新都应用到代码的当前状态,而不是初始状态。
输出格式
输出 $q + 1$ 个整数,每个整数占一行:分别表示所有更新之前以及每次更新之后成功起始位置的数量。
样例
输入样例 1
5 2 5 5 2 4 3 1 1 1 1
输出样例 1
15 11
输入样例 2
5 2 10 5 2 4 3 1 1 2 3
输出样例 2
11 12
输入样例 3
10 1 42 169 42 42 42 42 42 42 42 42 42 1 2 43
输出样例 3
211 254
说明
在第一个样例中,在进行任何更新之前,从位置 $(5, 1)$ 开始,循环按下“2 次上,然后 5 次右”:
第 1 轮:$(5, 1) \uparrow (4, 1) \uparrow (3, 1) \rightarrow (3, 2) \rightarrow (3, 3) \rightarrow (3, 4) \rightarrow (4, 1) \rightarrow (4, 2)$
第 2 轮:$(4, 2) \uparrow (3, 2) \uparrow (2, 2) \rightarrow (3, 1) \rightarrow (3, 2) \rightarrow (3, 3) \rightarrow (3, 4) \rightarrow (4, 1)$
第 3 轮:$(4, 1) \uparrow (3, 1) \uparrow (2, 1) \rightarrow (2, 2) \rightarrow (3, 1) \rightarrow (3, 2) \rightarrow (3, 3) \rightarrow (3, 4)$
第 4 轮:$(3, 4) \uparrow (2, 2) \uparrow (1, 2) \rightarrow \dots$
因此,$(5, 1)$ 是一个成功的起始位置。
在下图中,你可以看到每轮的起始位置用绿色圆点标记,最终位置用绿色星星标记。