战场模拟器 (simulator)
You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.
题目描述
战场模拟器中, 个英雄正在与魔王战斗。
这 个英雄排成一排,其中位置 的英雄最初的生命值为 。
在每个时刻,每个英雄都有以下其中一种状态:
- 生命值 < 0 的英雄被视为死亡,而已经死亡的英雄则会永远死亡。
- 生命值 = 0 的英雄被视为濒死。他们还未死亡,但处于危险之中。
- 生命值 > 0 的英雄被视为健康。
总共有 个事件,依时间顺序发生:
-
1 L R x: 魔王攻击从位置 到位置 (含)的英雄。对于每个英雄 (),英雄 的生命值会减少 。
-
2 L R x: 法师治疗从位置 到位置 (含)的英雄。对于每个英雄 (),如果英雄 还没有死亡,那么英雄 的生命值会增加 。
-
3 h: 为英雄 提供护盾,防止下次攻击对 造成伤害。一个英雄可以拥有多个护盾,而每次受到攻击都会消耗一个护盾。
-
4 L R: 查询从位置 到位置 (含)之间死亡的英雄数量。
-
5 L R: 查询从位置 到位置 (含)之间濒死的英雄数量。
你能够应付所有 个事件吗?
输入格式
从 simulator.in
文件读入数据。
第一行输入包含一个整数 。
第二行输入包含 个整数 。
第三行输入包含一个整数 。
接下来的 行依时间顺序分别描述一个事件。每 行以一个整数 开始,描述第 个事件的类型:
- 如果 或 ,则接下来有三个整数:。
- 如果 ,则接下来有一个整数:。
- 如果 或 ,则接下来有两个整数:。
输出格式
输出到 simulator.out
文件。
对于每个类型 或类型 事件,输出一行一个数字,代表该查询的答案。
样例
5
3 1 4 1 5
14
1 2 4 1
5 2 5
1 2 5 3
4 1 5
5 1 5
2 1 5 10
4 1 5
3 3
3 5
3 3
1 1 5 100
4 1 5
1 1 5 100
4 1 5
2
2
1
2
3
4
事件 1 | 3 | 0 | 3 | 0 | 5 |
---|---|---|---|---|---|
事件 3 | 3 | x | 0 | x | 2 |
事件 6 | 13 | x | 10 | x | 12 |
事件 11 | x | x | 10 | x | 12 |
事件 13 | x | x | 10 | x | x |
样例 2
点击链接 ex_simulator2.in 和 ex_simulator2.out 下载大样例 2 的输入数据和输出数据。
数据范围
对于所有测试数据,
,
,
对于所有 ,,
对于所有 ,,
对于所有 ,,
对于所有 ,,
保证存在至少一个类别 或类型 的事件。
子任务 | 分数 | 附加约束条件 |
---|---|---|
对于所有事件, | ||
只有类型 、类型 或类型 的事件,可以保证没有英雄死亡 | ||
只有类型 、类型 、类型 或类型 的事件,可以保证没有英雄死亡 | ||
只有类型 、类型 或类型 的事件 | ||
无附加限制 |
1015提高组
- Status
- Done
- Rule
- OI
- Problem
- 4
- Start at
- 2024-10-15 14:00
- End at
- 2024-10-15 18:00
- Duration
- 4 hour(s)
- Host
- Partic.
- 11