#P13845. [CERC 2023] Attendance

[CERC 2023] Attendance

Description

一名雄心勃勃的大学生几乎报名了所有可能的课程。不幸的是,这些课程都要求强制出勤。于是他决定在一天之内多次前往大学校园(课程开设的地方)。每次他都会参加当时正在进行的所有课程,在签到表上签名,然后立刻因为其他事务离开校园。当日稍晚他会再次返回,重复这一过程,在其他课程的签到表上签名,如此往复,直到他在所有课程的签到表上都留下了自己的名字。

然而,这还不是唯一的困难:课程表不断在变化。有些课程会被新增,有些则会被取消。学生必须不断调整自己前往校园的计划,以确保能够在所有课程的签到表上签名。

请编写一个程序:从一份空的课程表开始,顺序读取修改操作,每个修改要么是新增一门课程,要么是删除一门课程。对于每个修改,输出学生在当前课程表下,完成所有课程签到所需的最少来访次数。

Input Format

第一行包含一个整数 NN,表示修改操作的数量。接下来的 NN 行依次描述这些修改。

  • 新增课程由两个空格分隔的整数 AiA_iBiB_i 描述,表示一门课程从时间 AiA_i 到时间 BiB_i 开始和结束(区间两端都包含)。
  • 新增的课程会被依次编号,从 1 开始递增。
  • 一个负数 XiX_i 表示删除编号为 Xi-X_i 的课程。

Output Format

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

12
2 2
17 26
-2
12 21
0 0
19 21
16 22
14 20
15 19
13 14
-4
13 17
1
2
1
2
3
3
3
3
3
4
3
3

Hint

注释

第一门新增的课程是区间 [2,2][2, 2],编号为 1。接下来新增的课程是区间 [17,26][17, 26],编号为 2。随后它立即被删除(输入中的 -2 表示删除编号为 2 的课程)。接着新增的课程是区间 [12,21][12, 21],编号为 3,以此类推。

输入限制

  • 1N3000001 \leq N \leq 300\,000
  • 0AiBi1090 \leq A_i \leq B_i \leq 10^9
  • 每一个删除操作 XiX_i 都保证合法,即对应的课程在该时刻确实存在于课程表中。
  • 注意内存限制。

翻译由 ChatGPT-5 完成