U297804 2023“郡园杯”春季编程挑战活动E
题目描述
有两个长度为 $n$ 的序列 $A, B$。序列中的每个数字被选中后会得到这个数字,你可以分别从两个序列中取出若干数字(可以一个数也不选),从序列 $A,B$ 中分别取出的数字之和记为 $P,Q$。
每选一个数字需要花费 $k$ 的代价,所以当你从两个序列中总共取出 $S$ 个数字时,你的得分是 $\operatorname{min}\{P,Q\}-k\times S$。
求可能的最大得分。
输入格式
第一行输入两个正整数 $n$ 和 $k$,分别表示序列长度和选数字的代价。
接下来两行每行 $n$ 个实数,分别表示序列 $A$ 和序列 $B$ 中的值。
输出格式
输出一个实数,精确到小数点后五位,表示可以获得的最大分数值。
说明/提示
【样例解释】
对于样例 $1$,最优策略是将所有数字全部选出。
【测试点约束】
对于所有测试点:$1\leq n\leq 10^5$,$0\leq k\leq 10$,$0.0\leq$所有输入的实数$\leq 1000.0$。
每个测试点的具体限制见下表:
| 测试点编号 | $n\leq$ | 特殊限制 |
| :----------: | :----------: | :----------: |
| $1$ | $10$ | $k=0$ |
| $2$ | $10$ | 无 |
| $3\sim 6$ | $10^3$ | 无 |
| $7\sim 10$ | $10^5$ | 无 |