#CSPJ1017. 宝可梦军团(pokemon)

宝可梦军团(pokemon)

题目描述

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

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

第一个军团将前往物理界面,与敌人进行物理对抗,因此我们需要挑选物理攻击能力最强的宝可梦,组成物理军团。顾名思义,就是想要使得团队中宝可梦的的物理攻击能力之和最大。我们记物理军团中宝可梦的物理攻击能力之和为 w1w_1

第二个军团将前往魔法界面,与敌人进行魔法较量。因此我们需要挑选魔法攻击能力最强的宝可梦,组成魔法军团。顾名思义,就是想要使得团队中宝可梦的的魔法攻击能力之和最大。我们记魔法军团中宝可梦的魔法攻击能力之和为 w2w_2

而第三个军团将面临更为复杂的挑战,它们需要在物理和魔法兼备的综合界面作战。这意味着我们需要挑选出既能物理攻击又能魔法攻击的宝可梦,组成综合军团。更具体地,想要使得组成的团队中宝可梦的物理攻击能力和魔法攻击能力之和再除以 22 最大。我们记综合军团中宝可梦的物理攻击数值与魔法攻击数值之和除以 22 的结果为 w3w_3

由于 nn33 的倍数,可以确保每个军团拥有相同数量的宝可梦。小 Z 想要将这宝可梦分成数量相同的三个军团。然而,如何分配这些宝可梦,以最大化三个军团的战斗力估值之和(w1+w2+w3w_1+w_2+w_3),成为了小 Z 需要解决的关键问题。

输入格式

pokemon.in 文件读入数据。

第一行输入一个整数 nn,表示宝可梦的数量。

第二行输入 nn 个整数 a1,a2,,ana_1,a_2,\cdots,a_n 表示每个宝可梦的物理攻击能力。

第三行输入 nn 个整数 b1,b2,,bnb_1,b_2,\cdots,b_n 表示每个宝可梦的魔法攻击能力。

输出格式

输出到 pokemon.out 文件。

输出一行一个数字,表示答案,即 w1+w2+w3w_1+w_2+w_3 的最大值。如果答案是小数,则输出一位小数,如果答案是整数,则直接输出整数。

输入输出样例

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

样例2

点击链接 ex_pokemon2.inex_pokemon2.out 文件下载大样例 2 的输入数据和输出数据。

说明/提示

样例 1 解释

物理军团:宝可梦 22, 宝可梦 66, 战斗力估值 w1=7+9=16w_1=7+9=16

魔法军团: 宝可梦 11, 宝可梦 33, 战斗力估值 w2=2+9=11w_2=2+9=11

综合军团:宝可梦 44, 宝可梦 55, 战斗力估值 w3=[(4+4)+(5+3)]/2=8w_3=[(4+4)+(5+3)]/2=8

综上,战斗力总和为 16+11+8=3516+11+8=35。枚举可以证明,这种分法是最优的。

数据范围

对于 50%50\% 数据, n300n \le 300

对于 100%100\% 数据, 3n3105,1ai,bi1093 \le n \le 3*10^5,1 \le a_i,b_i \le 10^9,并且保证 nn33 的倍数。