#arc105c. [arc105_c]Camels and Bridge
[arc105_c]Camels and Bridge
问题陈述
有 只骆驼,编号从 到 。
第 只骆驼的重量是 。
你要将骆驼排成一行,并让它们穿过由 部分组成的桥梁。
在它们穿过桥梁之前,你可以选择它们在队列中的顺序 - 不必是从前到后的骆驼 ,,, - 并指定每对相邻骆驼之间的距离为任意非负实数。骆驼在穿过桥梁时保持指定的距离。
桥梁的第 部分的长度为 ,重量容量为 。如果部分内骆驼的重量之和(不包括端点)超过 ,则桥梁会坍塌。
确定是否可能让骆驼穿过桥梁而不坍塌。如果可能,请找出队列中首尾骆驼之间的最小可能距离。
可以证明答案始终是一个整数,因此输出一个整数。
约束条件
- 输入中的所有值都是整数。
输入
输入以以下格式从标准输入给出:
输出
如果骆驼穿过桥梁时桥梁将不可避免地坍塌,则输出 -1
。否则,当骆驼穿过桥梁而不坍塌时,请输出队列中首尾骆驼之间的最小可能距离。
示例输入1
示例输出1
- 可以通过将它们从前到后排列为 、 和 ,并设置它们之间的距离为 、,使得骆驼可以穿过桥梁而不会坍塌。
- 对于桥梁的第 部分,在某些时刻只有骆驼 和 在其中,而在某些时刻只有骆驼 在其中。在这两种情况下,骆驼的重量之和不超过第 部分的重量容量 ,因此不会坍塌。
- 对于桥梁的第 部分,在某些时刻只有骆驼 和 在其中,而在某些时刻只有骆驼 在其中。在这两种情况下,骆驼的重量之和不超过第 部分的重量容量 ,因此不会坍塌。
- 请注意,两只骆驼之间的距离可能为 ,并且端点上的骆驼不被视为在部分内。
示例输入2
示例输出2
- 如果骆驼穿过桥梁时桥梁将不可避免地坍塌,则输出
-1
。