[编程题]box
  • 热度指数:13 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 64M,其他语言128M
  • 算法知识视频讲解
现在需要把红球和蓝球放进大小为X的盒子里, 使得盒子剩余的空间尽量小.(不考虑位置, 认为球的体积和小于等于X就都能放进去) 
但要满足红球至少放进去a个, 蓝球至少有b个, 问盒子最小剩余空间是多少

输入描述:
输入第一行为T表示case数量
每个case第一行为n, m, a, b, X (1 <= n, m <= 20) ( 1 <= a <= n, 1 <= b <= m) (1 <= X <= 1e7)
n为红球总数, m为蓝球总数, a, b分别是红蓝球至少放进去的个数, X为盒子体积
每个case第二行n个正整数v表示n个红球体积
每个case第三行m个正整数v表示m个蓝球体积
(1 <= v <= 1e7)


输出描述:
每个case输出最小剩余空间, 不存在可行方案输出-1
示例1

输入

2
3 3 1 2 10000000
7498 3002622 3554354
3694891 1461303 867700
3 3 2 2 10000000
3727822 3732148 4295898
3967869 3549250 2313058

输出

414254
-1

这道题你会答吗?花几分钟告诉大家答案吧!