CF1136E Nastya Hasn't Written a Legend
题目描述
在本题中,Nastya 要求我们写出一个正式的题目描述。
给定一个长度为 $n$ 的数组 $a$ 和一个长度为 $n-1$ 的数组 $k$。需要处理两种类型的操作:
- 将 $a_i$ 增加 $x$。然后,如果 $a_{i+1} < a_i + k_i$,则将 $a_{i+1}$ 变为恰好 $a_i + k_i$;接着,如果 $a_{i+2} < a_{i+1} + k_{i+1}$,则将 $a_{i+2}$ 变为恰好 $a_{i+1} + k_{i+1}$,依此类推,直到 $a_{i+3}$,……,$a_n$;
- 输出数组 $a$ 的第 $l$ 个元素到第 $r$ 个元素组成的连续子数组的和。
保证初始时对于所有 $1 \leq i \leq n-1$,都有 $a_i + k_i \leq a_{i+1}$。
输入格式
第一行包含一个整数 $n$($2 \leq n \leq 10^{5}$),表示数组 $a$ 的元素个数。
第二行包含 $n$ 个整数 $a_1, a_2, \ldots, a_n$($-10^{9} \leq a_i \leq 10^{9}$),表示数组 $a$ 的元素。
第三行包含 $n-1$ 个整数 $k_1, k_2, \ldots, k_{n-1}$($-10^{6} \leq k_i \leq 10^{6}$),表示数组 $k$ 的元素。
第四行包含一个整数 $q$($1 \leq q \leq 10^{5}$),表示操作的数量。
接下来的 $q$ 行,每行表示一个操作,分为两种类型:
- 如果是第一种操作,该行以字符 '+'(不带引号)开头,后接两个整数 $i$ 和 $x$($1 \leq i \leq n$,$0 \leq x \leq 10^{6}$),表示将整数 $x$ 加到数组 $a$ 的第 $i$ 个元素上,具体操作如题目描述。
- 如果是第二种操作,该行以字符 's'(不带引号)开头,后接两个整数 $l$ 和 $r$($1 \leq l \leq r \leq n$),表示查询数组 $a$ 的第 $l$ 个到第 $r$ 个元素之和。
输出格式
对于每个第二种类型的操作,输出一行一个整数,表示对应子数组的元素和。
说明/提示
在第一个样例中:
- 第一次修改后,$a = [3, 4, 3]$;
- 第二次修改后,$a = [3, 4, 4]$。
在第二个样例中:
- 第一次修改后,$a = [6, 9, 10]$;
- 第二次修改后,$a = [6, 13, 14]$。
由 ChatGPT 4.1 翻译