P13845 [CERC 2023] Attendance

题目描述

一名雄心勃勃的大学生几乎报名了所有可能的课程。不幸的是,这些课程都要求强制出勤。于是他决定在一天之内多次前往大学校园(课程开设的地方)。每次他都会参加当时正在进行的所有课程,在签到表上签名,然后立刻因为其他事务离开校园。当日稍晚他会再次返回,重复这一过程,在其他课程的签到表上签名,如此往复,直到他在所有课程的签到表上都留下了自己的名字。 然而,这还不是唯一的困难:课程表不断在变化。有些课程会被新增,有些则会被取消。学生必须不断调整自己前往校园的计划,以确保能够在所有课程的签到表上签名。 请编写一个程序:从一份空的课程表开始,顺序读取修改操作,每个修改要么是新增一门课程,要么是删除一门课程。对于每个修改,输出学生在当前课程表下,完成所有课程签到所需的最少来访次数。

输入格式

第一行包含一个整数 $N$,表示修改操作的数量。接下来的 $N$ 行依次描述这些修改。 - 新增课程由两个空格分隔的整数 $A_i$ 和 $B_i$ 描述,表示一门课程从时间 $A_i$ 到时间 $B_i$ 开始和结束(区间两端都包含)。 - 新增的课程会被依次编号,从 1 开始递增。 - 一个负数 $X_i$ 表示删除编号为 $-X_i$ 的课程。

输出格式

对于每个修改操作,输出一行,表示在当前课程表下学生完成所有课程签到所需的最少来访次数。

说明/提示

### 注释 第一门新增的课程是区间 $[2, 2]$,编号为 1。接下来新增的课程是区间 $[17, 26]$,编号为 2。随后它立即被删除(输入中的 `-2` 表示删除编号为 2 的课程)。接着新增的课程是区间 $[12, 21]$,编号为 3,以此类推。 ### 输入限制 - $1 \leq N \leq 300\,000$ - $0 \leq A_i \leq B_i \leq 10^9$ - 每一个删除操作 $X_i$ 都保证合法,即对应的课程在该时刻确实存在于课程表中。 - 注意内存限制。 --- 翻译由 ChatGPT-5 完成