#129. 「SuperMemo」 超级备忘录
「SuperMemo」 超级备忘录
你的朋友达达被邀请参加一个叫做“超级备忘录”的电视节目。
在这个节目中,参与者需要玩一个记忆游戏。
在一开始,主持人会告诉所有参与者一个数列,。
接下来,主持人会在数列上做一些操作,操作包括以下几种:
1、ADD x y D:给子序列{}统一加上一个数D。例如,在{1, 2, 3, 4, 5}上进行操作”ADD 2 4 1”会得到{1, 3, 4, 5, 5}。
2、REVERSE x y:将子序列{}逆序排布。例如,在{1, 2, 3, 4, 5}上进行操作”REVERSE 2 4”会得到{1, 4, 3, 2, 5}。
3、REVOLVE x y T:将子序列{}轮换T次。例如,在{1, 2, 3, 4, 5}上进行操作”REVOLVE 2 4 2”会得到{1, 3, 4, 2, 5}。
4、INSERT x P:在后面插入P。例如,在{1, 2, 3, 4, 5}上进行操作”INSERT 2 4”会得到{1, 2, 4, 3, 4, 5}。
5、DELETE x:删除。例如,在{1, 2, 3, 4, 5}上进行操作”DELETE 2”会得到{1, 3, 4, 5}。
6、MIN x y:询问子序列{}中的最小值。例如,{1, 2, 3, 4, 5}上执行”MIN 2 4”的正确答案为2。
为了使得节目更加好看,每个参赛人都有机会在觉得困难时打电话请求场外观众的帮助。
你的任务是看这个电视节目,然后写一个程序对于每一个询问计算出结果,这样可以使得达达在任何时候打电话求助你的时候,你都可以给出正确答案。
输入格式
第一行包含一个整数 n。
接下来 n 行给出了序列中的数。
接下来一行包含一个整数 M,描述操作和询问的数量。
接下来 M 行给出了所有的操作和询问。
输出格式
对于每一个”MIN”询问,输出正确答案。
每个答案占一行。
数据范围
输入样例:
5
1
2
3
4
5
2
ADD 2 4 1
MIN 4 5
输出样例:
5
来源
- 《算法竞赛进阶指南》
- acwing 可能含有视频讲解