#zHANlydlt01x1103. 编辑器 Editor

编辑器 Editor

题目描述

你将要实现一个功能强大的整数序列编辑器。

在开始时,序列是空的。

编辑器共有五种指令,如下:

  1. I x,在光标处插入数值 xx
  2. D,将光标前面的第一个元素删除,如果前面没有元素,则忽略此操作。
  3. L,将光标向左移动,跳过一个元素,如果左边没有元素,则忽略此操作。
  4. R,将光标向右移动,跳过一个元素,如果右边没有元素,则忽略此操作。
  5. Q k,假设此刻光标之前的序列为 a1,a2,,ana_1,a_2,\dots,a_n,输出 max1ikSi\max\limits_{1 \le i \le k} S_i,其中 Si=a1+a2++aiS_i = a_1 + a_2 + \dots + a_i

输入格式

第一行包含一个整数 QQ,表示指令的总数。

接下来 QQ 行,每行一个指令,具体指令格式如题目描述。

输出格式

对于每一个 Q k 指令,输出一个整数作为结果,每个结果占一行。

样例

输入样例:

8
I 2
I -1
I 1
Q 3
L
D
R
Q 2

输出样例:

2
3

样例解释

初始序列为空。

  1. I 2:插入 2,序列为 [2],光标在 2 后。
  2. I -1:插入 -1,序列为 [2, -1],光标在 -1 后。
  3. I 1:插入 1,序列为 [2, -1, 1],光标在 1 后。
  4. Q 3:光标前的序列为 [2, -1, 1],前缀和:S1=2, S2=1, S3=2,max=2,输出 2。
  5. L:光标左移一位,现在在 -1 后。
  6. D:删除光标前第一个元素(即 -1),序列变为 [2, 1],光标在 1 后。
  7. R:光标右移一位,现在在 1 后(其实右边无元素,忽略?实际右边无元素,所以不动)。
  8. Q 2:光标前的序列为 [2, 1],前缀和:S1=2, S2=3,max=3,输出 3。

数据范围

  • 1Q1061 \le Q \le 10^6
  • x103|x| \le 10^3
  • 1kn1 \le k \le nnn 为当前光标前的元素个数)

时空限制

  • 时间限制:1 秒
  • 空间限制:64 MB