#P15100. [ICPC 2025 LAC] Festival Signs
[ICPC 2025 LAC] Festival Signs
说明
在一个节日期间,广告牌会在不同时刻被添加到舞台上或从舞台上移除。每个广告牌呈矩形,垂直于地面放置,其中一条边稳固地接触地面。
一个网络摄像头正在直播节日,展示舞台的二维图像。在这幅图像中,底部边界对应地面。每个广告牌覆盖图像中的一个矩形区域。一个广告牌由一个区间 和一个高度 描述,这意味着它覆盖图像中所有满足 且 的点 。
请注意,广告牌覆盖矩形底部和侧边边界上的点,但不覆盖顶部边界上的点。此外,表示不同广告牌的矩形可以重叠。
在直播过程中,经理会在不同时刻进行多次查询。每次查询指定一个区间 ,并询问在满足 的所有未被覆盖的点 中,最小的 值(其中 和 是实数)。
你的任务是编写一个程序来处理一系列 个事件:广告牌的添加、广告牌的移除,以及关于给定区间内最小未被覆盖高度的查询。
例如,考虑以下按时间顺序给出的 个事件序列(见下图):
- 添加一个广告牌,其 ,。
- 添加一个广告牌,其 ,。
- 进行查询 。该查询的答案是 。该区间内具有最小高度的未被覆盖点的一个例子是坐标为 的点。
- 进行查询 ,答案为 。
- 进行查询 ,答案为 。
- 移除第二次添加的广告牌。
- 进行查询 ,答案为 。请注意,移除第二个广告牌改变了查询 的答案。
:::align{center}
:::
输入格式
第一行包含一个整数 (),表示事件的数量。
接下来的 行按时间顺序描述每个事件。每行的内容取决于事件类型,如下所示:
- 广告牌添加:该行包含字符 “+”(加号)和三个整数 、 和 ( 且 ),表示添加一个广告牌,其覆盖图像中的矩形区域,如题目描述中所述。每个添加的广告牌被分配一个从 开始的连续整数标识符。
- 广告牌移除:该行包含字符 “-”(减号)和一个整数 ,表示移除标识符为 的广告牌。保证 标识一个已被添加且之前未被移除的广告牌。
- 查询:该行包含字符 “?”(问号)和两个整数 和 (),询问区间 内最小未被覆盖高度,如题目描述中所述。保证输入中至少包含一个查询。
输出格式
对每个查询输出一行,包含一个整数,表示对应区间内的最小未被覆盖高度。
7
+ 2 5 3
+ 4 7 5
? 1 10
? 2 7
? 4 5
- 2
? 4 5
0
3
5
3
4
+ 1 2 1
+ 3 4 1
? 1 2
? 1 4
1
0
提示
翻译由 DeepSeek V3 完成
京公网安备 11011102002149号