学习小组
类型:程序题

问题描述

班主任计划将班级里的 $n$ 名同学划分为若干个学习小组,每名同学都需要分入某一个学习小组中。班级里的同学依次以 $1, 2, \dots, n$ 编号,第 $i$ 名同学有其发言积极度 $c_i$。

观察发现,如果一个学习小组中恰好包含编号为 $p_1, p_2, \dots, p_k$ 的 $k$ 名同学,则该学习小组的基础讨论积极度为 $a_k$,综合讨论积极度为 $a_k + \max\{c_{p_1}, c_{p_2}, \dots, c_{p_k}\} - \min\{c_{p_1}, c_{p_2}, \dots, c_{p_k}\}$,也即基础讨论积极度加上小组内同学的最大发言积极度与最小发言积极度之差。

给定基础讨论积极度 $a_1, a_2, \dots, a_n$,请你计算将这 $n$ 名同学划分为学习小组的所有可能方案中,综合讨论积极度之和的最大值。

输入描述

第一行,一个正整数 $n$,表示班级人数。

第二行,$n$ 个非负整数 $c_1, c_2, \dots, c_n$,表示每位同学的发言积极度。

第三行,$n$ 个非负整数 $a_1, a_2, \dots, a_n$,表示不同人数学习小组的基础讨论积极度。

输出描述

输出一行,一个整数,表示所有划分方案中,学习小组综合讨论积极度之和的最大值。

样例输入 1

4
2 1 3 2
1 5 6 3

样例输出 1

12

样例解释 1

最优划分是把 4 名同学分成 {1,2} 与 {3,4} 两个 2 人小组:第一组基础讨论积极度 $a_2 = 5$,组内最大发言积极度 2、最小 1,差为 1,得 6;第二组 $a_2 = 5$,最大 3、最小 2,差为 1,也得 6,合计 12。

样例输入 2

8
1 3 2 4 3 5 4 6
0 2 5 6 4 3 3 4

样例输出 2

21

样例解释 2

最优划分为 {1,7,8}、{2,3,4}、{5,6} 三个小组:{1,7,8} 的发言积极度为 1、4、6,基础 $a_3 = 5$ 加差 5 得 10;{2,3,4} 的发言积极度为 3、2、4,$a_3 = 5$ 加差 2 得 7;{5,6} 的发言积极度为 3、5,$a_2 = 2$ 加差 2 得 4。合计 10 + 7 + 4 = 21。

数据范围

对于 40 的测试点,保证 $c_i = 0$。

对于所有测试点,保证 $1 \le n \le 300$,$0 \le c_i \le 10^{4}$,$0 \le a_i \le 10^{4}$。

代码编辑器 加载中...
测试用例输入
{{resultStatus.text}}
乐编题库AI助手
人工客服
微信扫码联系客服
历史对话
{{ s.title || '未命名对话' }}
{{ s.created_at }}
暂无历史对话
我能帮助你什么?