#129. 「SuperMemo」 超级备忘录

「SuperMemo」 超级备忘录

你的朋友达达被邀请参加一个叫做“超级备忘录”的电视节目。

在这个节目中,参与者需要玩一个记忆游戏。

在一开始,主持人会告诉所有参与者一个数列,A_1,A_2,,A_nA\_1, A\_2, …, A\_n

接下来,主持人会在数列上做一些操作,操作包括以下几种:

1、ADD x y D:给子序列{A_x,,A_yA\_x, …, A\_y}统一加上一个数D。例如,在{1, 2, 3, 4, 5}上进行操作”ADD 2 4 1”会得到{1, 3, 4, 5, 5}。
2、REVERSE x y:将子序列{A_x,,A_yA\_x, …, A\_y}逆序排布。例如,在{1, 2, 3, 4, 5}上进行操作”REVERSE 2 4”会得到{1, 4, 3, 2, 5}。
3、REVOLVE x y T:将子序列{A_x,,A_yA\_x, …, A\_y}轮换T次。例如,在{1, 2, 3, 4, 5}上进行操作”REVOLVE 2 4 2”会得到{1, 3, 4, 2, 5}。
4、INSERT x P:在A_xA\_x后面插入P。例如,在{1, 2, 3, 4, 5}上进行操作”INSERT 2 4”会得到{1, 2, 4, 3, 4, 5}。
5、DELETE x:删除A_xA\_x。例如,在{1, 2, 3, 4, 5}上进行操作”DELETE 2”会得到{1, 3, 4, 5}。
6、MIN x y:询问子序列{A_x,,A_yA\_x, …, A\_y}中的最小值。例如,{1, 2, 3, 4, 5}上执行”MIN 2 4”的正确答案为2。

为了使得节目更加好看,每个参赛人都有机会在觉得困难时打电话请求场外观众的帮助。

你的任务是看这个电视节目,然后写一个程序对于每一个询问计算出结果,这样可以使得达达在任何时候打电话求助你的时候,你都可以给出正确答案。

输入格式

第一行包含一个整数 n。

接下来 n 行给出了序列中的数。

接下来一行包含一个整数 M,描述操作和询问的数量。

接下来 M 行给出了所有的操作和询问。

输出格式

对于每一个”MIN”询问,输出正确答案。

每个答案占一行。

数据范围

n100000,M100000n \le 100000,M \le 100000

输入样例:

5
1 
2 
3 
4 
5
2
ADD 2 4 1
MIN 4 5

输出样例:

5

来源

  • 《算法竞赛进阶指南》
  • acwing 可能含有视频讲解