跟分餐桌很像,但是写了半天还是写不出来。
描述: 餐厅有 n 张桌子,每张桌子分别可以坐 a[n]个人,今日有 m 组客人预约,每组分别有 b[m]人。对其安排座位。 -如果:
- 一组客人都安排在一张桌子上,那么满意度不会下降。
- 如果拒绝这组客人的预约,那么满意度下降:人数 * x
-
如果将一组客人分在 k 张桌子上用餐,那么满意度下降:(k-1) * y
- 比如说有 4 人桌,5 人桌,1 人桌,1 人桌 4 张桌子,y=10 的情况下,将 7 人的一组客人,分到 4,5 2 张桌子的情况,满意度下降(2-1) * 10 。或者将其分成 5,1,1 3 张桌子的情况,满意度下降(3-1) * 10 。
- 不能与其他组的客人拼桌
输入形式: n m x y a[1] a[2] … a[n] b[1] b[2] … b[n]
例 1:
输入:
4 2 5 3
4 5 1 1
7 3
输出
6 ( 7 人组:分到 5 1 1 桌上,3 人组分到 4 人桌上)
例 2:
输入
4 2 2 16
4 5 1 1
7 3
输出
14 ( 7 人组:拒绝预约,3 人组:分到 4 人桌上)
例 3:
输入
4 2 5 3
1 1 2 3
2 5
输出
6 ( 2 人组:1,1 桌上,5 人组:分到 2,3 人桌上)