#GESP1305. [GESP202512七级] 学习小组

[GESP202512七级] 学习小组

题目背景

2025 年 12 月 GESP C++ 七级编程第 2 题

题目描述

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

观察发现,如果一个学习小组中恰好包含编号为 p1,p2,,pkp_1,p_2,\dots,p_kkk 名同学,则该学习小组的基础讨论积极度为 aka_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}\}$,也即基础讨论积极度加上小组内同学的最大发言积极度与最小发言积极度之差。

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

输入格式

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

第二行, nn 个非负整数 c1,c2,,cnc_1,c_2,\dots,c_n,表示每位同学的发言积极度。

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

输出格式

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

样例

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

数据范围

对于 40%40\% 的测试点,保证 ci=0c_i=0

对于所有测试点,保证 1n3001\le n\le 3000ci1040\le c_i\le 10^40ai1040\le a_i\le 10^4