#iai12t3. 行程码(Travel Code)

行程码(Travel Code)

行程码(Travel Code)

题目描述

给定当前日期,以及小爱最近的行程,给定当前所有中高风险地区城市名字及风险等级,请生成小爱的行程码。具体说明如下:

  • 城市名称是由小写英文字母组成的字符串,不含大写字母、数字或其他字符;
  • 一部分城市为中高风险城市。风险等级分为高风险(以 H 表示)或中风险(以 M 表示);
  • 输入数据只给出中高风险城市,其余城市均默认为低风险;
  • 行程中的时间由月份与日期组成,中间以 - 号链接,如 02-29 表示2月29日,所有时间均在2020年。输入数据保证不会出现不合理的日期,月份和日期均为两位数字,若不足两位,首位以 0 补全。
  • 行程是由时间和城市名称组成的,表示在给定的时间,小爱在给定的城市活动。

生成行程码的要求如下:

  • 行程码只关心小爱在当前日期前 14 天内的行程。14 天内的含义是指若两个日期之差小于或等于 14 天。
  • 行程码按绿、黄、红三色区分风险等级
    • 若 14 天内有高风险地区行程,显示红码(以 Red 表示);
    • 否则,若 14 天内有中风险地区行程,显示黄码(以 Yellow 表示);
    • 否则,说明小爱没有中高风险地区行程,显示绿码(以 Green 表示)。
  • 行程码还应列举出当前日期前 14 天内访问过的所有城市:
    • 最近访问的城市应优先输出;
    • 若需要输出多个城市,以 , 隔开城市名;
    • 若城市为中高风险,则城市名后应添加 (M)(H) 标识。
    • 若访问同一个城市多次,则只输出与当前日期最近的一次。

输入格式

第一行:单个正整数 n,表示中有 n 个城市为中高风险城市。 接下来 n 行:每行有一个城市名称及一个字符,由空格隔开,表示该城市的风险等级,保证不会有两行的城市名称相同; 接下来一行:单个正整数 m,表示行程数量。 接下来 m 行:每行表示一条行程,由月份、日期及城市名称组成。 最后一行:一个日期,表示当前日期

输出格式

第一行:一个字符串,表示行程码的颜色(为 GreenYellowRed 中的一种); 第二行:一个字符串,表示小爱最近的行程记录。

样例输入 #1

3
berlin M
london M
newyork H
6
11-30 guangzhou
12-03 ningbo
12-04 hangzhou
12-05 shanghai
12-08 london
12-11 shanghai
12-17

样例输出 #1

Yellow
shanghai,london(M),hangzhou,ningbo

说明:当前日期为12月17日。小爱在14天内去过的城市有shanghai,london,hangzhou,ningbo。其中shanghai,hangzhou,ningbo均未标记为中高风险地区,则默认为低风险地区,london为中风险地区,则小爱的行程码颜色为黄色。

数据范围

  • 1 ≤ n ≤ 10,1 ≤ m ≤ 100
  • 数据保证行程按日期顺序给出;
  • 数据保证每条行程的日期均不同;
  • 数据保证所有行程的日期不会晚于当天日期
  • 数据保证至少存在一条行程当前日期的前 14 天内。

知识点与难度

本题涉及的知识点从属于 GESP 3级,难度等级:⭐⭐


测试点分布

Subtask 分值 测试点编号 说明
0 10 1~2 样例 / 绿码简单样例
1 20 3~8 小规模 n≤3 / 特殊: 全高风险 / 特殊: 无中高风险
2 15 9~11 Hack: 全高风险边界 / Hack: 14天边界 / Hack: 仅低风险城市
3 30 12~20 中规模 n≈1~10, m≈5~50
4 25 21~25 随机 n=1~10, m=1~100 回归