华为OD机试真题-最佳对手
时间: 2023-09-25 21:07:46 浏览: 120
华为OD机试真题-字符串重传排列2023
题目描述:
有 n 名选手参加一个比赛,每个选手有一个能力值 a[i]。现在要从中选出两个选手组成一组,使得他们的能力值之和最大。但是,如果两个选手年龄相差超过 3 岁,则他们不能被选为一对。
请你编写一个算法,在满足年龄差超过 3 岁的条件下,从这 n 名选手中选出两个组成一组,使得他们的能力值之和最大。
输入描述:
第一行包含一个整数 n,表示参赛选手总数。
第二行包含 n 个整数,第 i 个整数表示第 i 名选手的能力值 a[i]。
第三行包含 n 个整数,第 i 个整数表示第 i 名选手的年龄。
输出描述:
输出一个整数,表示最大的能力值之和。
示例:
输入:
5
5 2 6 4 3
6 1 5 4 7
输出:
11
解释:
在这个样例中,假设第 1 名选手和第 5 名选手组成一组,则他们的能力值之和为 5+3=8。但是,他们的年龄差为 7-6=1,小于 3。因此,他们不能组成一组。如果组成其他任意一组,能力值之和都不会超过 11。因此,最优方案是选取第 3 名和第 5 名选手,他们的能力值之和为 6+3=9,是所有选手中最大的。
阅读全文