返回首页 返回题库

晚宴

C++ 中等 GESP五级真题 #最大公约数

题目描述

题面描述

小明去参加晚宴。晚宴中有个菜肴,每个菜肴都有一个美味度,第个菜肴的美味度为 。

晚宴规定小明只能恰好选取两道菜肴,并且这两道菜肴的美味度必须要互质(即最大公约数为)。

请帮助小明选取两道菜肴,使得两道菜肴美味度之和最大。

输入格式

输入共2行:

  • 第一行为一个正整数,表示菜肴的个数;
  • 第二行为个整数 表示菜肴的美味度,整数之间以空格分隔。

输出格式

输出一个整数,表示两道互质菜肴美味度之和的最大值。

样例1

输入:

5
3 5 7 35 105

输出:

38

样例解释1

最优选择是和。

注意到,与其他任意菜肴的最大公约数都大于,因此无法参与合法选择。

数据范围

,。

数据保证不存在相同美味度的菜肴。

数据保证至少存在一种选取两道菜肴的方案。

时间限制

1.0 s

内存限制

512.0 MB

💡 查看提示(先自己想一想再看)
核心考察最大公约数(GCD)的计算、两层循环枚举所有两两组合的方法。解题思路:由于要得到最大的和,也可以先对数组从大到小排序,找到第一对满足互质的数即可提前终止,优化运行效率。常见易错点:GCD递归边界处理错误、枚举时遗漏组合或重复计算。
⚙ 开始做这道题 0 人做过 · 0 收藏 · 5 浏览

讨论(0)