QOJ.ac

QOJ

حد الوقت: 3 s حد الذاكرة: 256 MB مجموع النقاط: 100

#13797. 山

الإحصائيات

高山游乐园(Mountain Amusement Park)新开了一款全新的模拟过山车。模拟轨道由 $n$ 段首尾相接的铁轨组成,第一段铁轨的起点固定在高度 $0$ 处。操作员 Byteman 可以通过调整若干连续铁轨的高度变化来任意重新配置轨道。其他铁轨的高度变化不受影响。每次调整铁轨时,后面的轨道会相应地升高或降低,以保持轨道的连接,同时起点仍保持在高度 $0$。下图展示了两个轨道重新配置的例子。

每次运行过山车时,车子会被发射,并具有足够的能量达到高度 $h$。也就是说,只要轨道的高度不超过 $h$,且没有到达轨道末端,车子就会继续行驶。

给定一天中所有运行记录和轨道配置修改记录,计算每次运行中车子在停止前通过的铁轨数量。

在模拟器内部,轨道被表示为由 $n$ 个高度变化组成的序列,每段铁轨对应一个。第 $i$ 个数字 $d_i$ 表示第 $i$ 段铁轨的高度变化(单位:厘米)。假设在通过 $i-1$ 段铁轨后,车子达到了 $h$ 厘米的高度。在通过 $i$ 段铁轨后,车子将达到 $h + d_i$ 厘米的高度。

最初,铁轨是水平的;即对于所有 $i$,都有 $d_i = 0$。运行和重新配置在一天中交替进行。每次重新配置由三个数字 $a$、$b$ 和 $D$ 指定。要调整的区间由铁轨 $a$ 到 $b$(含)组成。该区间内每段铁轨的高度变化被设置为 $D$。即对于所有 $a \le i \le b$,有 $d_i = D$。

每次运行由一个数字 $h$ 指定——车子可以达到的最大高度。

任务

编写一个程序:

  • 从标准输入读取一系列交替进行的重新配置和运行操作,
  • 对于每次运行,计算车子通过的铁轨数量,
  • 将结果写入标准输出。

输入格式

输入的第一行包含一个正整数 $n$——铁轨的数量,$1 \le n \le 1\,000\,000\,000$。

接下来的行包含交替进行的重新配置和运行操作,最后以结束标记结束。每行包含以下内容之一:

  • 重新配置——单个字母 I,以及整数 $a$、$b$ 和 $D$,全部由单个空格分隔($1 \le a \le b \le n$,$-1\,000\,000\,000 \le D \le 1\,000\,000\,000$)。
  • 运行——单个字母 Q,以及一个整数 $h$($0 \le h \le 1\,000\,000\,000$),由单个空格分隔。
  • 单个字母 E——结束标记,表示输入数据的结束。

你可以假设在任何时刻,轨道上任意一点的高度都在区间 $[0, 1\,000\,000\,000]$ 厘米内。输入不超过 $100\,000$ 行。

输出格式

输出的第 $i$ 行应包含一个整数——车子在第 $i$ 次运行期间通过的铁轨数量。

数据范围

  • 在 $50\%$ 的测试用例中,$n$ 满足 $1 \le n \le 20\,000$,且输入不超过 $1\,000$ 行。
  • 对于所有测试用例,$1 \le n \le 1\,000\,000\,000$,输入不超过 $100\,000$ 行。

样例

输入样例 1

4
Q 1
I 1 4 2
Q 3
Q 1
I 2 2 -1
Q 3
E

输出样例 1

4
1
0
3

说明

每次重新配置前后轨道的示意图。x 轴表示铁轨编号。y 轴和点上方的数字表示高度。线段上方的数字表示高度变化。

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.