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 翻译