luogu#B4319. [语言月赛 202504] 礼堂预约

[语言月赛 202504] 礼堂预约

题目描述

小 M 所在的学校有一个礼堂,礼堂里至多能同时进行一个活动,因此需要预约。每个活动占据某一天的上午、下午或者晚上。

礼堂负责人按照时间顺序接收到了 nn 个活动预约,其中第 ii 个活动预约描述了活动如下信息:

  • 活动类型 typeitype_i:一个大写字母,O 表示学校官方活动,C 表示社团活动,P 表示个人活动。
  • 活动日期 dateidate_i:使用 YYYYMMDD 格式表示,例如 20250411 表示 20252025441111 日。
  • 活动时间 timeitime_i:一个大写字母,M 表示上午,A 表示下午,E 表示晚上。

负责人每收到一个新的活动预约,会直接加入日程,接下来重复执行如下流程,直到日程里没有冲突:

  • 我们规定学校官方活动优先于社团活动优先于个人活动。如果冲突的两个活动预约类型不同,那么把优先程度更低的活动向后挪一天(活动时间不变)。
  • 如果冲突的两个活动类型相同,那么遵循先到先得的原则,把较后预约的活动向后挪一天。
  • 注意向后挪动一天可能引发新的冲突,此时对于新冲突的两个活动,仍然按照上述方案调整。

给出这 nn 个活动预约的信息,请输出最终每个活动在日程里的活动日期,按照活动预约的提交顺序输出。

输入格式

输入的第一行有一个正整数 nn,表示活动个数。

之后 nn 行,每行依次输入一个大写字母 typeitype_i、一个八位数日期 dateidate_i 和一个大写字母 timeitime_i,表示一个活动预约,具体含义同题目描述。

输出格式

输出 nn 行,每行一个八位数日期,其中第 ii 行表示的是第 ii 个提交的活动预约最终的日期。

5
P 20250419 A
O 20250419 A
C 20250419 A
C 20250419 E
C 20250420 A

20250422
20250419
20250420
20250419
20250421

6
P 20280228 M
P 20280228 M
P 20290228 A
P 20290228 A
P 20991231 E
P 20991231 E

20280228
20280229
20290228
20290301
20991231
21000101

5
C 20250419 E
C 20250420 A
P 20250419 A
O 20250419 A
C 20250419 A

20250419
20250420
20250422
20250419
20250421

提示

【样例 1 解释】

活动 11 是个人活动,希望在 20252025441919 日下午进行,没有冲突。

活动 22 是官方活动,希望在 20252025441919 日下午进行,和活动 11 冲突。因此,活动 11 被修改到 442020 日下午。

活动 33 是社团活动,希望在 20252025441919 日下午进行,和活动 22 冲突。

  • 由于活动 22 是官方活动,所以把活动 33 延后一天到 442020 日下午。
  • 然而现在活动 33 和活动 11 冲突,而活动 11 优先程度更低,所以活动 11 被修改到 442121 日下午。

活动 44 是社团活动,希望在 20252025441919 日晚上进行,没有冲突。

活动 55 是社团活动,希望在 20252025442020 日下午进行,和活动 33 冲突。

  • 由于活动 3,53,5 都是社团活动,按照先到先得原则,把活动 55 延后到 20252025442121 日下午。
  • 现在活动 55 和活动 11 冲突,所以把活动 11 延后到 20252025442222 日。

【样例 2 解释】

注意日期的计算。

【样例 3 解释】

按照收到活动预约的时间给出,不代表活动预约按照 dateidate_i 排序。

【数据范围】

对于全部数据,保证 1n50001\le n\le 5000typeitype_i 一定是 OCP 之一,timeitime_i 一定是 MAE 之一,dateidate_i 一定是 200020001111 日到 2099209912123131 日之间、真实存在的日期。(注意并不保证最终的日期在这个范围内。)

本题共有 1010 个测试点,每个 1010 分。部分测试点有特殊性质,具体如下:

测试点编号 nn\le 特殊性质 A 特殊性质 B
1,21,2 500500 保证 保证
33 不保证
44 保证 不保证
5,65,6 不保证
77 50005000 保证
8,9,108,9,10 不保证
  • 特殊性质 A:每个活动的最终日期和预约日期在同一个月内(例如样例 1)。
  • 特殊性质 B:每个活动预约仅产生至多一次冲突,不会连续冲突(例如样例 2)。