通过率 63% · 提交 102 · 通过 64
在亚兰泽斯魔法大陆,魔导师们管理着无数蕴含强大魔力的。这些卷轴必须按照严格的封印规则存放至中,否则魔法可能会失控,引发灾难。 为此,魔法工程师们设计了一套,用于高效管理魔法卷轴。系统按照以下规则运行: 1. 初始化封印系统:设置封印规则,包括 `timeWindow`、最大封印卷轴数 `maxFiles`、封印卷轴的魔法总量上限 `fileSize`。 2. 创建魔法卷轴:每个卷轴按照时间顺序生成(严格递增),并带有唯一的编号 `fileId` 和魔法能量值 `fileSize`。 3. 执行封印:选择满足条件的卷轴,将其打包进魔法典籍中。 你的任务是实现这个魔法封印系统,使卷轴能够按照规则正确封印。
这类题属于华为可信认证科目一方向中「可信 / 系统设计」方向的高频题型,通常考察对「可信 / 系统设计」的建模能力与边界条件处理。掌握本题的解题思路后,可举一反三应对同类真题方向,稳步提升机考通过率。
提示:带虚线的词点一下有通俗解释。
第一行包含一个整数 Q,表示操作的总数。
接下来的 Q 行,每行描述一个操作,操作分为以下几种:
初始化封印系统:
ZipSystemtimeWindow:时间窗口 T,表示卷轴的时间戳与队列中第一个卷轴的时间戳之差不能超过 T。maxFiles:最大封印卷轴数 M,表示每次封印操作最多可以封印 M 个卷轴。maxSize:魔法总量上限 S,表示每次封印操作的卷轴魔法能量值之和不能超过 S。插入卷轴:
insertFiletimestamp:卷轴的时间戳。fileId:卷轴的唯一编号。fileSize:卷轴的魔法能量值。执行封印:
zip对于每个操作,输出相应的结果:
初始化封印系统:
"null",表示初始化完成。插入卷轴:
执行封印:
示例 1
输入示例
12 ZipSystem 10 3 15 insertFile 1 101 5 insertFile 2 102 4 insertFile 3 103 6 insertFile 5 104 3 insertFile 15 105 7 zip insertFile 17 107 4 insertFile 20 94 3 zip insertFile 20 85 1 zip
输出示例
null 1 2 3 4 5 101 102 103 3 4 104 105 3 85 94 107
在这个示例中,魔法封印系统按照以下步骤运行:
T=10,最大封印卷轴数 M=3,魔法总量上限 S=15。系统初始化完成后输出 "null"。(1, 101, 5),队列中有 1 个卷轴,输出 1。(2, 102, 4),队列中有 2 个卷轴,输出 2。(3, 103, 6),队列中有 3 个卷轴,输出 3。(5, 104, 3),队列中有 4 个卷轴,输出 4。(15, 105, 7),队列中有 5 个卷轴,输出 5。101、102、103,它们的魔法能量值之和为 5 + 4 + 6 = 15,未超过 S=15,且时间戳差不超过 T=10。101 102 103,队列中剩余卷轴 (5, 104, 3) 和 (15, 105, 7)。(17, 107, 4),队列中有 3 个卷轴,输出 3。(20, 94, 3),队列中有 4 个卷轴,输出 4。104 和 105,它们的魔法能量值之和为 3 + 7 = 10,未超过 S=15,且时间戳差不超过 T=10。104 105,队列中剩余卷轴 (17, 107, 4) 和 (20, 94, 3)。(20, 85, 1),队列中有 3 个卷轴,输出 3。85、94、107,它们的魔法能量值之和为 1 + 3 + 4 = 8,未超过 S=15,且时间戳差不超过 T=10。85 94 107,队列为空。时间限制 1000 ms · 内存限制 128 MB
本平台为独立第三方培训机构,与华为技术有限公司无任何关联;课程的服务内容与权益以购买协议为准,学习效果因个人情况而异。「华为 OD」「华为可信」等仅为对岗位与考试方向的客观描述,相关商标归各自权利人所有。
登录后可查看你在本题的历史提交,以及每次的各用例通过情况。
© 2026 广州慕课网络科技有限公司 · 吴师兄学算法官网 版权所有