#1472. [L2-2] 考试周

内存限制:512 MiB 时间限制:1200 ms 标准输入输出
题目类型:传统 评测方式:Special Judge
上传者: hwpvector

题目描述

"啪!"你重重合上《凸优化》,梧桐苑咖啡的提神效果早已消退。东花园的蝉鸣穿透自习室玻璃,提醒你这是西安交大第 17 个不眠夜。突然手机震动,教学事务部连发三条通知:

  • “《人工智能导论》考试提前至第 10 天!”
  • “《算法设计与分析》新增实验考试!”
  • “《形式语言与编译》调至第 25 天,现在公布!”

你颤抖着点开“移动教务”,屏幕上跳动着血红的倒计时。图书馆三楼研讨间里,熬夜复习的同学们像极了兵马俑——眼底乌青却目光如炬。这里的卷王法则残酷而真实:当考试周开始时,所有课程的课程名 stristr_i,公布日 sis_i、考试日 did_i、复习需求日 cic_i 都会化作数据洪流,只有最缜密的规划者才能存活。

作为沙坡村男子职业技术学校的卷王系统核心算法开发者,你需要设计“时空折叠复习规划器”。给定考试周的持续时间 m(2m2×105)m(2\le m\le 2\times 10^5) 日,以及 n(1nm)n(1\le n\le m) 门课程的 (stri,si,di,ci)(str_i,s_i,d_i,c_i) 四元组,保证 did_i 各不相同,请为迷途学子指明生路:

  • 每天只能选择在下面的事情中,做一件事:复习 11 门课;休息;参加 11 门考试。
  • 对于第 ii 个科目,只能在公布日 sis_i 开始至考试前一天 di1d_i-1 期间复习。
  • 对于第 ii 个科目,至少需要完成 cic_i 天复习才能参加考试。
  • 考试当天必须参加且不能复习任何科目。

迷途学子应如何安排每日的时间,让他可以在期末考试中存活?

输入格式

输入第 11 行,共两个正整数 m,nm,n,用空格分开。第一个正整数 mm 表示考试周从第 11 天开始,持续到第 mm 天。第二个正整数 nn,表示课程数量。

接下来第 22 行至 n+1n+1 行,第 i+1i+1 行,输入一个字符串 stristr_i,三个正整数 si,di,cis_i,d_i,c_i,用空格分开。stristr_i 表示第 ii 门课的课程名,sis_i 表示公布日为第 sis_i 天,did_i 表示考试日为 did_i 天,cic_i 表示复习至少需要 cic_i 日。

输出格式

如果迷途学子不能在期末考试中存活,则输出一行,一个字符串,DIE

否则,输出共 mm 行,每行由一个字符串构成。第 ii 个字符串,表示第 ii 天应该做的事情:

  • 如果第 ii 天复习,则输出学子应复习的课程名 strkstr_k
  • 如果第 ii 天休息,则输出 REST
  • 如果第 ii 天参加考试,则输出 EXAM

如果存在多种答案,你只要输出任意一种符合题意的答案,就会被认为正确。

样例

样例输入 1

10 3
tcs 3 7 2
ai 1 10 3
ics 8 9 1

样例输出 1

ai
ai
tcs
ai
REST
tcs
EXAM
ics
EXAM
EXAM

样例输入 2

3 2
ai 1 3 1
tcs 1 2 1

样例输出 2

DIE

数据范围与提示

所有数据保证 2m2×1052\le m\le 2\times 10^51nm1\le n\le m

对于所有的 1in1\le i\le nstristr_i 仅由小写希腊字母 ab ...,z 构成,stristr_i 的长度 stri|str_i| 满足 1stri51\le |str_i|\le 5。保证 stristr_i 各不相同。

对于所有的 1in1\le i\le n,有 1si<dim1\le s_i < d_i \le m1cim1\le c_i\le m。保证 did_i 各不相同。

【注意】(C/C++ 选手请忽略)由于本题 IO 量较大,请:

  • Python 选手使用 input().split() 读入,print() 输出;
  • Java 选手使用 streamtokenizer 读入,使用 printwriter 输出,具体见帖子 https://oj.xjtuicpc.com/article/4。