1342 问题 B: 硬币游戏

时间限制: 1s 内存限制: 128MB 提交: 70 解决: 40
题目描述
最初地面上有一堆n个硬币(5< =n< =2000),从上面数第i个硬币的价值为C_i(1< =C_i< =100000); 游戏开始后,A先取一枚或两枚硬币。如果A取了一枚,那么B可以继续取一枚或两枚;如果A取了两枚,那么B可以取一到四枚硬币。每次都只能从最上面取。每一次,当前取硬币的人都至少取一枚硬币,最多可以取他的对手上一次取硬币数目的两倍。当没有硬币可取的时候,游戏就结束了。 然后,他们就可以用得到的硬币向John买东西,当然,他们游戏的目的就是要尽可能使自己得到的硬币价值更大。现在你的任务是,求出在两个人都想得到更大价值的情况下,游戏结束后,第一个人最多能得到的硬币价值。
输入
第1行:  一个整数,N(5< =N< =2000)。  第2到n+1行:  第  i+1  行代表从上数第i枚硬币的价值。
输出
一行:一个数字,第一个人能得到的最大价值
样例输入
5
1
3
1
7
2
样例输出
9
提示
零基础同学可以先学习视频课程,包含C/C++、Python、百练、蓝桥杯辅导、算法数据结构等课程,提供视频讲解以及配套习题,还有老师答疑,点击这里了解课程详情

比赛公告

题号:1341,1342,1343,1344,1345,1346,1347,1348,1349,1350

点击上方导航栏的训练,点击题库,寻找题号即可找到对应题目,比赛结束后,请通过训练->题库->寻找对应题目的方式做题

因为不确定因素太多,就不再安排大家轮流讲题了,大家做不出题可以在测试结束后去题库找对应的题目看题解,希望大家自觉练习,认真练习,考核测试会采取不同与现在测试的方式,两个月后综合测试成绩不达标者会退出实验室,希望大家认真对待