#P5399. 分拣包裹
分拣包裹
题目描述
某快递分拣中心需要分拣来自三个不同区域的包裹:红区、绿区和中转区。 每个包裹都有其重要程度,分为以下三类:
- 红区包裹,共有 N 个,其重要程度分别为 A₁,A₂,…,Aₙ。
- 绿区包裹,共有 M 个,其重要程度分别为 B₁,B₂,…,Bₘ。
- 中转区包裹,共有 K 个,其重要程度分别为 C₁,C₂,…,Cₖ。
在处理之前,中转区的包裹可以重新分配到红区或绿区,分别计入红区包裹或绿区包裹。 现在,分拣中心需要选择 X 个红区包裹和 Y 个绿区包裹,并确保所选包裹的重要程度之和尽可能大。 请编程计算出,如何将中转区包裹重新分配到红区或绿区,才能使得所选包裹的重要程度之和最大,输出重要程度之和的最大值。
输入格式
- 第一行包含 5 个整数,表示 X,Y,N,M,K。
- 第二行包含 N 个整数,表示每个红区包裹的重要程度。
- 第三行包含 M 个整数,表示每个绿区包裹的重要程度。
- 第四行包含 K 个整数,表示每个中转区包裹的重要程度。
输出格式
输出一个整数,表示在最优选择下,所选包裹的重要程度之和的最大值。
样例输入输出
样例 1
- 样例输入 1:
1 2 2 2 1
2 4
5 1
3
- 样例输出 1:
12
Hint
样例 1 解释
包裹的重要程度之和的最大值可以通过以下方式实现:
- 分拣红区第 2 个包裹(重要程度 4)。
- 分拣绿区第 1 个包裹(重要程度 5)。
- 将中转区第 1 个包裹(重要程度 3)转移到绿区并分拣。 总和为 4 + 5 + 3 = 12。
数据规模
- 有 10% 的数据满足 X=1,Y=1,N=1,M=1,K=1。
- 100% 的数据满足 1≤X≤N≤10⁵,1≤Y≤M≤10⁵,1≤K≤10⁵,1≤Aᵢ,Bᵢ,Cᵢ≤10⁹。
相关
在以下作业中: