#AEAI07012. 面向失败分支的鲁棒任务方案树选择

面向失败分支的鲁棒任务方案树选择

题目描述

鲁棒任务方案不仅要看主流程顺不顺,还要看失败分支会把系统带到哪里。具身智能部用方案树描述这些分支,让程序选择最能扛住坏情况的计划。

输入给出多棵方案树及其节点收益、风险或失败分支信息。你需要评估每个方案的最坏分支表现,并按鲁棒指标和字典序规则选出最终方案。

请特别注意树的遍历边界、叶子状态、最坏分支比较顺序以及所有方案都不可用时的 SAFE_STOP

输入格式

第一行输入方案数 P

第二行输入四个整数:

conf_thr max_risk max_time max_energy

每个方案先输入:

pid normal_ok conf reach risk expect time energy high branch_count

随后输入 branch_count 条失败分支:

critical safe branch_high branch_risk branch_time branch_energy

输出格式

若存在可行鲁棒方案,输出:

pid SAFE worst_high worst_risk expect worst_time worst_energy recoverable

若没有可行方案,输出:

SAFE_STOP

判定规则

主流程必须满足 normal_ok = 1conf >= conf_thrreach = 1risk <= max_risktime <= max_timeenergy <= max_energy。任一关键分支 critical = 1safe = 0 时,方案不可行;任一分支超过风险、时间或能量上限时,方案不可行。

worst_high 为主流程和所有分支中 high 的最小值,worst_riskworst_timeworst_energy 分别为最大值,recoverablesafe = 1 的分支数量。方案按 worst_high 大、worst_risk 小、expect 大、worst_time 小、worst_energy 小、recoverable 大、pid 小选择。

数据范围与测试提示

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

样例

输入样例 1

2
60 5 10 10
1 1 80 1 3 50 5 5 2 1
1 1 2 4 5 5
2 1 90 1 2 70 4 4 1 1
1 1 1 2 4 4

输出样例 1

1 SAFE 2 4 50 5 5 1

输入样例 2

1
60 5 10 10
1 1 50 1 3 50 5 5 2 1
1 1 2 4 5 5

输出样例 2

SAFE_STOP