HM314 教师审核
HM314 教师审核
来源: 第 314 集 机房预约系统-教师审核预约功能实现
难度: 普及
时间限制: 1s
空间限制: 64MB
题目描述
只有教师能做审核。先构造预约表:mSize 为 \(0\) 则输出 无预约记录 并结束。
能拿来审核的只有状态为 \(1\)(审核中)的记录。已取消、已通过、已驳回的都不要列。和取消预约一样,用户看到的是从 \(1\) 起的序号,真实下标可能对不齐,所以再用 vector<int> 记下大表下标。用户选 \(k\) 时,真实键是 v[k-1]。
列表中输出日期、时段(三目:\(1\) 上午否则下午)、机房号、学号、姓名;状态此时必然是审核中,可以直接写死。
每次进入审核界面都会按**当前**状态重新筛选。一次界面处理一个选择:
- 选择不在 \(0\sim v.size()\):输出
输入有误,本轮不改表。 - 选择 \(0\):本轮放弃审核,不改表。
- 否则再看审核结果:\(1\) 表示通过,把该条
status置为"2";其余(含 \(2\))表示不通过,置为"-1"。然后整表回写,输出审核完毕。
回写格式:
date v1 interval v2 stuId v3 stuName v4 roomId v5 status v6
共进行 \(q\) 轮界面(模拟多次进入审核功能)。全部轮次结束后,若一开始 \(n>0\),再输出最终文件。
输入格式
第一行:\(n\)。
接下来 \(n\) 行,每行六个字段:日期、时段、学号、姓名、机房号、状态。
当 \(n>0\) 时:下一行 \(q\),随后 \(q\) 行,每行两个整数 select ret。select 为 \(0\) 或非法时,ret 仍会给出,但应忽略。
输出格式
若 \(n=0\),一行 无预约记录。
否则对每一轮先输出当前待审核列表,每行:
k、预约日期:d 时段:上午|下午 机房号:r 学号:id 姓名:name 状态:审核中
再按选择输出 输入有误 或 审核完毕(选择 \(0\) 不追加提示)。最后输出 \(n\) 行最终文件。
样例
输入 #1
4
1 2 1 张三 3 1
2 2 1 张三 1 1
4 1 2 李四 2 1
1 2 1 张三 3 0
4
9 1
1 1
1 2
1 1
输出 #1
1、预约日期:1 时段:下午 机房号:3 学号:1 姓名:张三 状态:审核中
2、预约日期:2 时段:下午 机房号:1 学号:1 姓名:张三 状态:审核中
3、预约日期:4 时段:上午 机房号:2 学号:2 姓名:李四 状态:审核中
输入有误
1、预约日期:1 时段:下午 机房号:3 学号:1 姓名:张三 状态:审核中
2、预约日期:2 时段:下午 机房号:1 学号:1 姓名:张三 状态:审核中
3、预约日期:4 时段:上午 机房号:2 学号:2 姓名:李四 状态:审核中
审核完毕
1、预约日期:2 时段:下午 机房号:1 学号:1 姓名:张三 状态:审核中
2、预约日期:4 时段:上午 机房号:2 学号:2 姓名:李四 状态:审核中
审核完毕
1、预约日期:4 时段:上午 机房号:2 学号:2 姓名:李四 状态:审核中
审核完毕
date 1 interval 2 stuId 1 stuName 张三 roomId 3 status 2
date 2 interval 2 stuId 1 stuName 张三 roomId 1 status -1
date 4 interval 1 stuId 2 stuName 李四 roomId 2 status 2
date 1 interval 2 stuId 1 stuName 张三 roomId 3 status 0
输入 #2
0
输出 #2
无预约记录
说明
\(0 \le n \le 200\),\(1 \le q \le 50\)(\(n=0\) 时无后续)。
样例 #1 复现审核链:先拒绝非法序号;再让张三 \(3\) 号机房通过(状态 \(2\));再驳回张三 \(1\) 号机房(状态 \(-1\));最后让李四通过。已取消的第四条始终不出现在待审列表。学生事后应能分别看到成功、失败和自己取消的记录。
信息
- ID
- 1313
- 难度
- 9
- 分类
- (无)
- 标签
- (无)
- 递交数
- 2
- 已通过
- 1
- 通过率
- 50%
- 上传者