#AEAI07005. 遮挡与容量约束下的桌面整理

遮挡与容量约束下的桌面整理

题目描述

桌面整理看起来像简单搬物体,但遮挡依赖、容器容量和执行顺序会让计划变复杂。具身智能部希望你把这些约束压成一个小规模、可验证的规划题。

本题给出物体、遮挡关系、容量限制和可执行动作。你需要在满足依赖的前提下枚举或动态规划子集状态,选出题面定义的最优整理方案;无法完成时输出安全停止。

请保持依赖方向、容量边界和方案序列比较完全一致,尤其不要在样例之外自行放宽遮挡约束。

输入格式

第一行输入五个整数:

N K max_actions max_risk high_thr

第二行输入 K 个整数,表示各容器容量。

接下来 N 个物体,每个物体格式为:

target vol value priority risk grasp move dep_count dep_1 ... dep_dep_count block_count block_1 ... block_block_count

target 为 1-based 容器编号,依赖和遮挡对象编号均为 1-based。

输出格式

若存在可执行整理方案,输出:

SUCCESS len item_seq... | target_seq... value risk move

若只能完成部分物体,第一项为 TASK_FAILED,其余格式相同。若没有任何可行选择,输出 SAFE_STOP

判定规则

选择一个非空物体子集,大小不超过 max_actions。被选物体必须 grasp = 1,其依赖对象和遮挡对象也必须在同一子集中;对应容器剩余容量必须足够,累计风险不能超过 max_risk

方案价值为所选物体 value 之和,高优先物体数量为 priority >= high_thr 的个数。按总价值大、高优先数量大、风险小、移动代价小、物体数少、物体编号序列字典序小选择。若选中全部物体输出 SUCCESS,否则输出 TASK_FAILED

数据范围与测试提示

  • 所有编号均按题面说明使用 1-based;字符串枚举按输入原样比较。
  • 正式测试会覆盖安全停止、无可行分支、阈值等号、并列比较和恢复失败等边界情况。
  • 输出只包含题目要求的字段,不要输出调试信息。

样例

输入样例 1

2 1 2 5 5
5
1 2 5 6 1 1 2 0 0
1 3 8 4 1 1 3 1 1 0

输出样例 1

SUCCESS 2 1 2 | 1 1 13 2 5

输入样例 2

2 1 2 5 5
3
1 2 5 6 1 1 2 0 0
1 3 8 4 1 1 3 1 1 0

输出样例 2

TASK_FAILED 1 1 | 1 5 1 2