[关闭]
@Yeasion-Nein 2018-10-16T20:05:23.000000Z 字数 1176 阅读 578

​ NOIP Simulation
​ Jinan, China, Oct 15, 2018


追求巅峰并没有什么错,可现在你的样子,哪还是一个站在巅峰的人应该拥有的!--


:

:

:

:

题目背景:

在这个界的人都知道,世界上最伟大的修道者 —— ,曾经结束了的无垠盏之灾,守护了的和平。在无垠盏之灾的最后,近神的正在和堕入魔道的修道者,无垠灾的始作俑者进行最后的对峙。掌握着时间之力的他可以随意一个地域或者一片连续地域的时间拉回过去,甚至可以控制一片地域时间的流逝速度。

题目描述:

已知利用流时错位术创造出了一片相互当前时间不相同,时间流逝速度与外界也不相同的地域,该片地域可以被认为是由一串相对于开始的时间经过了秒的序列组成。如果一片连续的地域的时间最大值和最小值的差值过大,严重的流时错位就会形成巨大的扭曲对造成无法估量的伤害。所以现在要针对这个序列利用自己的时间之力进行一系列操作。操作分为两种:

在第个时刻的时候将一段连续区间的区间的时间整体拉回过去,使其统一减少秒。
将一个单个地域的时间流逝速度减少K。

已知最开始的时候,每经过一个时刻,序列的时间就会流逝秒。
虽然已经利用自己的力量对于序列的时间进行操作,但是仍然会有一些地区有较大的流时错位,所以要针对序列的最值之差进行防备。那么你还要处理一些询问,要求处理第i个时刻,序列内的时间的最大值和最小值差值。
注意:所有操作的输入按照时刻从大到小。操作不耗费时间。保证输入及过程中所有量均不为负数。对于每一个时刻的操作,先后顺序如下:时间流逝 > 拉回过去 > 减缓时间流逝 > 询问。

输入格式:

第一行,三个正整数分别表示序列长度,操作个数,和开始的时候,经过一个时刻,时间流逝几秒。
第二行,个整数,表示开始的时候的序列时间。
下面行,首先一个字母表示操作类型:

表示拉回过去,后面会跟着四个数表示操作时刻,区间左右端点和减少的数。
表示减缓时间流逝速度,后面跟着三个数表示操作时刻,地域的编号和减缓多少时间流逝速度。
表示询问,后面会跟着三个数表示询问时刻,询问区间的左右端点。

输出格式:

对于每一次询问,输出一个数,表示区间的时间最大值和最小值的差值。

输入样例 :

6 2
2 3 7 3 6 2
C 0 2 5
A 1 1 4 2
C 1 2 5
B 2 5 2
A 3 1 5 2
C 3 1 2

输出样例:

3
5
1

数据大小:

对于%的数据:


添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注