#31327. T2 宝可梦军团(pokemon)

T2 宝可梦军团(pokemon)

宝可梦军团(pokemon)

【题目描述】

在战乱纷飞的年代,平行宇宙中的各个世界陷入了混战。小Z作为宝可梦世界中的战略参谋,肩负着重大的使命。小Z手下拥有 nn 个强大的宝可梦(nn 是3的倍数),它们各自具备独特的物理攻击能力和魔法攻击能力。更具体地,nn 个宝可梦编号为 1,2,…,n1,2,\dots,n,其中第 ii 个宝可梦的物理攻击能力为 aia_i,魔法攻击能力为 bib_i。

为了应对这场前所未有的危机,小Z决定将这些宝可梦分成三个军团,分别前往三种不同类型的战场。

第一个军团将前往物理战场,与敌人进行物理对抗,称为物理军团。物理军团的战斗力估值 w1w_1 为军团中所有宝可梦的物理攻击能力之和。

第二个军团将前往魔法战场,与敌人进行魔法较量,称为魔法军团。魔法军团的战斗力估值 w2w_2 为军团中所有宝可梦的魔法攻击能力之和。

第三个军团将面临更为复杂的挑战,它们需要在物理和魔法兼备的综合战场作战,称为综合军团。综合军团的战斗力估值 w3w_3 为军团中所有宝可梦的物理攻击能力与魔法攻击能力之和再除以2。

小Z要把这 nn 个宝可梦全部分配到三个军团中,每个宝可梦恰好属于一个军团,并且三个军团的宝可梦数量相同(均为 \(n/3\) 个)。如何分配这些宝可梦,使得三个军团的战斗力估值之和 w1+w2+w3w_1+w_2+w_3 最大,成为了小Z需要解决的关键问题。

【输入格式】

从 pokemon.in 文件读入数据。

第一行输入一个整数 nn,表示宝可梦的数量。 第二行输入 nn 个整数 a1,a2,…,ana_1,a_2,\dots,a_n,表示每个宝可梦的物理攻击能力。 第三行输入 nn 个整数 b1,b2,…,bnb_1,b_2,\dots,b_n,表示每个宝可梦的魔法攻击能力。

【输出格式】

输出到 pokemon.out 文件。

输出一行一个数,表示 w1+w2+w3w_1+w_2+w_3 的最大值。如果答案是整数,则直接输出整数;否则答案的小数部分一定是 0.5,保留一位小数输出。

【样例 1 输入】

6
1 7 3 4 5 9
2 3 9 4 3 3

【样例 1 输出】

35

【样例 1 解释】

物理军团:宝可梦 2,宝可梦 6,战斗力估值 w1=7+9=16w_1=7+9=16。 魔法军团:宝可梦 1,宝可梦 3,战斗力估值 w2=2+9=11w_2=2+9=11。 综合军团:宝可梦 4,宝可梦 5,战斗力估值 w3=[(4+4)+(5+3)]/2=8w_3=[(4+4)+(5+3)]/2=8。

综上,战斗力估值之和为 \(16+11+8=35\)。枚举可以证明,这种分法是最优的。

【样例 2】

见选手目录下的 pokemon/pokemon2.in 与 pokemon/pokemon2.out。

【数据范围】

对于 50% 的数据,n≤300n \le 300。 对于 100% 的数据,3≤n≤3×105, 1≤ai,bi≤1093 \le n \le 3\times10^5,\ 1 \le a_i,b_i \le 10^9,并且保证 nn 是 3 的倍数。