实验室需要执行一批计算任务,每个任务会消耗一定的运行时长。现有两台计算机可以执行这些任务,计算机 A 的性能是计算机 B 的两倍,即同样一个任务在计算机 B 上需要的运行时长是 A 的 2 倍。任务需要串行执行,每台计算机同一时刻最多能运行一个任务,同一个任务只能在 A 或 B 上运行完成,不能拆分。
请合理分配这些任务到 A 和 B 上,并返回运行完成所有任务所需的最小时间。
实验室需要执行一批计算任务,每个任务会消耗一定的运行时长。
现在有两台计算机可以执行这些计算任务,但是两个计算机的性能并不相同:
任务是串行的,每个计算机同一时刻最多能运行一个任务;同一个任务只能在 A 或 B 上一次运行完成,不能拆分成多段。
请你合理分配这些任务到 A 和 B 上,并返回运行完成这些计算任务所需要的最小时间。
1.每个计算任务在计算机 A 上运行需要的时长,以空格隔开。
2.运行时长单位是分钟,都是正整数,取值范围是 [1,1000] 。
3.任务总数范围是 [1,1000] 。
所有计算任务全部完成需要的最小分钟数。
输入
20 15 10
输出
30
说明
A 上运行第 1、3 个作业,耗时 30 分钟
B 上运行第 2 个作业,耗时 15∗2=30 分钟
总共耗时 30 分钟。
输入
6 15 22 13
输出
38
说明
A 上运行第 2、3 个作业,耗时 37 分钟
B 上运行第 1、4 个作业,耗时 38 分钟
总共耗时 38 分钟。