#167. 学习小组

学习小组

学习小组

题目描述

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

观察发现,如果一个学习小组中恰好包含 k 名同学,则该学习小组的基础讨论积极度为 a[k],综合讨论积极度为 a[k] 加上小组内同学的最大发言积极度与最小发言积极度之差。

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

输入格式

第一行,一个正整数 n,表示班级人数。 第二行,n 个非负整数 c[1], c[2], ..., c[n],表示每位同学的发言积极度。 第三行,n 个非负整数 a[1], a[2], ..., a[n],表示不同人数学习小组的基础讨论积极度。

输出格式

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

样例

输入样例 1

4 2 1 3 2 1 5 6 3

输出样例 1

12

样例解释 1

把 4 人分成两个各 2 人的小组,基础积极度 5 + 5 = 10,加上各组内极差,总和为 12。

输入样例 2

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

输出样例 2

21

数据范围

对于所有测试点,保证 1 <= n <= 3000 <= c[i] <= 10^40 <= a[i] <= 10^4