HM306 双层预约表
HM306 双层预约表
来源: 第 306 集 机房预约系统-预约类的容器属性分析
难度: 普及
时间限制: 1s
空间限制: 64MB
题目描述
预约文件里每一条都是空格分开的键值对,冒号左边是属性名,右边是实值,例如 date:1 interval:2 stuId:1 stuName:张三 roomId:3 status:1。属性名起索引作用;实值不要按整数存——姓名不是整数,因此**键和值一律用字符串**。
一条记录内部正好对应一个 map<string, string>:date、interval、stuId、stuName、roomId、status 各出现一次,不会重复,因此用 map 即可,不必 multimap。多条记录再套一层:外层 map<int, map<string, string>>,外层键是记录序号(从 \(0\) 起),外层值是该条的小表。
字段名必须写成 stuName,不要写成别的拼法,否则以后按键取值会取空。
读入全部记录并建好双层表后,按询问取出指定记录、指定属性的值。外层键不存在或内层没有该属性时输出 MISS。
输入格式
第一行一个整数 \(n\),记录条数。
接下来 \(n\) 行,每行六个 属性:值 串,顺序任意,但属性名属于上述六个。
下一行一个整数 \(q\)。
随后 \(q\) 行,每行一个整数 \(i\) 和一个属性名,表示查询第 \(i\) 条(\(0\) 起)的该属性。
输出格式
共 \(q\) 行,每行一个字符串。
样例
输入 #1
2
date:1 interval:2 stuId:1 stuName:张三 roomId:3 status:1
date:2 interval:2 stuId:1 stuName:张三 roomId:1 status:1
5
0 date
0 interval
1 roomId
1 stuName
0 status
输出 #1
1
2
1
张三
1
输入 #2
1
date:5 interval:1 stuId:2 stuName:李四 roomId:2 status:1
3
0 stuId
2 date
0 name
输出 #2
2
MISS
MISS
说明
\(1 \le n \le 200\),\(1 \le q \le 200\)。属性值不含空白。外层键从 \(0\) 编到 \(n-1\)。
样例 #1 两条都是键值对,数字也当字符串存。样例 #2 外层没有 \(2\) 号、内层没有 name(正确键是 stuName),均输出 MISS。
信息
- ID
- 1305
- 难度
- (无)
- 分类
- (无)
- 标签
- (无)
- 递交数
- 0
- 已通过
- 0
- 通过率
- ?
- 上传者