2026年国庆模拟赛第5场-T1 程老师的借阅登记机
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
| 项目 | 说明 |
|---|---|
| 文件名 | borrow |
| 输入文件 | borrow.in |
| 输出文件 | borrow.out |
| 时间限制 | 1000 ms |
| 内存限制 | 512 MB |
| 测试点数目 | 20(等分) |
题目描述
程老师把班里的图书角交给一台登记机管理。老师每借出一本书或收回一本书,都会在登记机上留下一条记录:借书记作 B x,还书记作 R x,其中 是书号。登记机依次处理这些记录,处理规则只有两条:
- 处理借书记录
B x时,若书 当前已经处于借出状态(借出后尚未归还),这条记录会被拒绝,不计入成功次数;否则借书成功,书 转为借出状态。 - 处理还书记录
R x时,若书 当前不处于借出状态,这条记录会被忽略,不计入成功次数;否则还书成功,书 转回在架状态。
所有记录处理完毕后,老师想知道两件事:一共有多少条记录被成功执行;以及此时仍然借出在外的是哪些书。
输入格式
从文件 borrow.in 中读入数据。
第一行一个正整数 ,表示记录的条数。
接下来 行,每行一个字符和一个整数,中间用一个空格隔开。字符为 B 或 R,表示这是一次借书或还书操作;整数 表示书号。
输出格式
输出到文件 borrow.out 中。
第一行一个整数,表示被成功执行的记录条数。
第二行输出此时仍处于借出状态的书号,按从小到大的顺序排列,相邻两个书号之间用一个空格隔开。若没有任何书处于借出状态,第二行为空行。
数据范围
对于所有测试数据,保证:,。
| 测试点 | 特殊性质 | |
|---|---|---|
| 1~4 | 无 | |
| 5~10 | ||
| 11~16 | ||
| 17~18 | ||
| 19 | A | |
| 20 | B |
特殊性质 A:输入中不存在被拒绝或被忽略的记录,每条记录都执行成功。
特殊性质 B:所有记录的书号都不超过 。
6
B 1001
R 1001
B 1001
B 1001
R 1002
B 1003
4
1001 1003
3
B 7
B 7
R 8
1
7
样例解释
样例 1:第 1 条 B 1001 执行成功,1001 借出;第 2 条 R 1001 执行成功,1001 归还;第 3 条 B 1001 再次借出成功;第 4 条 B 1001 因 1001 已在借出状态被拒绝;第 5 条 R 1002 因 1002 不在借出状态被忽略;第 6 条 B 1003 执行成功。成功记录共 4 条,最终 1001、1003 借出未还,按升序输出。
样例 2:第 1 条 B 7 成功;第 2 条 B 7 因 7 已借出被拒;第 3 条 R 8 因 8 未借出被忽略。仅 1 条成功,最终借出的是 7。