C++动态规划或者C语言递归都可以

问题遇到的现象和发生背景 :修建门柱

你决定用一些高度不同的石头堆砌成大门左右两侧的柱子,并希望大门的高度最大。左右两侧的柱子必须高度相等,否则大门没法安装横梁。

例如,如果三块石头的高度分别为 1、2 和 3,则可以将它们堆成高度为 6 的石头柱子。如果另外还有两块高度分别为2和4的石头,那么就可以组成大门两侧的柱子了,大门高度为6。

返回大门最大可能的高度。如果这堆石头没法安装大门,请返回 0。

可能有若干块高度相同的石头。

输出:

输入格式:
第一行为一个整数n,表示有多少块石头。第二行为每块石头的高度,用空格隔开。
输出格式:
一个整数,表示大门最大可能高度。

输入数据范围:
0<=n<=20
1<=每块石头的高度<=1000
石头总高度<=5000

示例1:
输入:
4
1 2 3 6
输出:
6
提示:两侧的柱子分别由石块1+2+3 和 6 组成。

示例2:
输入:
6
1 2 3 4 5 6
输出:
10
提示:两侧的柱子分别由石块2+3+5 和 4+6 组成。

示例3:
输入:
2
1 2
输出:
0
提示:无法组成两侧高度相等的柱子。

示例4:
输入:
20
1 2 4 8 16 32 64 128 256 512 50 50 50 150 150 150 100 100 100 123
输出:
请根据程序运行结果提供

球球了有木有会的呜呜呜

你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答


本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。


因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。