#P5399. 分拣包裹

分拣包裹

题目描述

某快递分拣中心需要分拣来自三个不同区域的包裹:红区、绿区和中转区。 每个包裹都有其重要程度,分为以下三类:

  • 红区包裹,共有 N 个,其重要程度分别为 A₁,A₂,…,Aₙ。
  • 绿区包裹,共有 M 个,其重要程度分别为 B₁,B₂,…,Bₘ。
  • 中转区包裹,共有 K 个,其重要程度分别为 C₁,C₂,…,Cₖ。

在处理之前,中转区的包裹可以重新分配到红区或绿区,分别计入红区包裹或绿区包裹。 现在,分拣中心需要选择 X 个红区包裹和 Y 个绿区包裹,并确保所选包裹的重要程度之和尽可能大。 请编程计算出,如何将中转区包裹重新分配到红区或绿区,才能使得所选包裹的重要程度之和最大,输出重要程度之和的最大值。

输入格式

  1. 第一行包含 5 个整数,表示 X,Y,N,M,K。
  2. 第二行包含 N 个整数,表示每个红区包裹的重要程度。
  3. 第三行包含 M 个整数,表示每个绿区包裹的重要程度。
  4. 第四行包含 K 个整数,表示每个中转区包裹的重要程度。

输出格式

输出一个整数,表示在最优选择下,所选包裹的重要程度之和的最大值。

样例输入输出

样例 1

  • 样例输入 1:
1 2 2 2 1
2 4
5 1
3
  • 样例输出 1:
12

Hint

样例 1 解释

包裹的重要程度之和的最大值可以通过以下方式实现:

  1. 分拣红区第 2 个包裹(重要程度 4)。
  2. 分拣绿区第 1 个包裹(重要程度 5)。
  3. 将中转区第 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⁹。