SP11470 TTM - To the moon

题目描述

一个长度为 $N$ 的数组 $\{A\}$,$4$ 种操作: - `C l r d`:区间 $[l,r]$ 中的数都加 $d$,同时当前的时间戳加 $1$。 - `Q l r`:查询当前时间戳区间 $[l,r]$ 中所有数的和。 - `H l r t`:查询时间戳 $t$ 区间 $[l,r]$ 的和。 - `B t`:将当前时间戳置为 $t$。 所有操作均合法。 ps:刚开始时时间戳为 $0$。

输入格式

第一行两个正整数,$N, M$,表示数组长度和操作个数。 接下来一行 $N$ 个整数,表示数组 $\{A\}$。 接下来 $M$ 行,每行格式为 `C l r d` 或 `Q l r` 或 `H l r t` 或 `B t`,表示四种操作。

输出格式

对于每个 `Q l r` 或 `H l r t` 的操作,输出一行一个整数表示答案。

说明/提示

**【数据范围】** 数据保证:$1 \le N, M \le 10^5$,$|A_i| \le 10^9$,$1 \le l \le r \le N$,$|d| \le 10^4$。 在刚开始没有进行操作的情况下时间戳为 $0$,且保证 `B` 操作不会访问到未来的时间戳。 由 @bztMinamoto @yzy1 @BlackHoles 提供翻译。