#OD073. 统一限载货物数最小值

统一限载货物数最小值

题目解析和算法源码

华为OD机试 - 统一限载货物数最小值(Java & JS & Python)_伏城之外的博客-CSDN博客

题目描述

火车站附近的货物中转站负责将到站货物运往仓库,小明在中转站负责调度2K辆中转车(K辆干货中转车,K辆湿货中转车)。

货物由不同供货商从各地发来,各地的货物是依次进站,然后小明按照卸货顺序依次装货到中转车,一个供货商的货只能装到一辆车上,不能拆装,但是一辆车可以装多家供货商的货;

中转车的限载货物量由小明统一指定,在完成货物中转的前提下,请问中转车的统一限载货物数最小值为多少。

输入描述

第一行 length 表示供货商数量 1 <= length <= 10^4

第二行 goods 表示供货数数组 1 <= goods[i] <= 10^4

第三行 types表示对应货物类型,types[i]等于0或者1,其中0代表干货,1代表湿货

第四行 k表示单类中转车数量 1 <= k <= goods.length

输出描述

运行结果输出一个整数,表示中转车统一限载货物数

备注

中转车最多跑一趟仓库

用例1

输入

4
3 2 6 3
0 1 1 0
2

输出

6

说明

货物1和货物4为干货,由2辆干货中转车中转,每辆车运输一个货物,限载为3

货物2和货物3为湿货,由2辆湿货中转车中转,每辆车运输一个货物,限载为6

这样中转车统一限载货物数可以设置为6(干货车和湿货车限载最大值),是最小的取值

用例2

输入

4
3 2 6 8
0 1 1 1
1

输出

16

说明

货物1为干货,由1辆干货中转车中转,限载为3

货物2、货物3、货物4为湿货,由1辆湿货中转车中转,限载为16

这样中转车统一限载货物数可以设置为16(干货车和湿货车限载最大值),是最小的取值