A71676 | 打靶的最高得分
来源编程题
时间限制1s
内存限制512MB
通过 / 提交0/0
题目描述
靶场上有 n 块靶排成一排,从左到右依次编号为 1、2、3、...、n,且每块靶上都标有一个整数。
当某块靶被击中后,击中者会得到 x * y * z 的积分。(y 表示被击中的靶上的数,x 表示其左侧最近且未被击中的靶上的数,z 表示其右侧最近且未被击中的靶上的数。如果其左侧不存在未被击中的靶,则 x 为 1;如果其右侧不存在未被击中的靶,则 z 为 1。)
计算完积分后,这块靶就会退出靶场(不在这排靶中)。
请计算击中所有靶后能得到的最高积分是多少?
例如:n = 4,表示有 4 块靶,这 4 块靶上的数从左到右分别是 3、2、4、6;
按照下列顺序打靶,可以得到最高积分:
打 2 号靶,得到的积分是 24(3 * 2 * 4);
打 3 号靶,得到的积分是 72(3 * 4 * 6);
打 1 号靶,得到的积分是 18(1 * 3 * 6);
打 4 号靶,得到的积分是 6(1 * 6 * 1);
最终获得的积分是 120(24 + 72 + 18 + 6)。
输入格式
第一行输入一个整数 n(1 \le n \le 300),表示靶场上靶的数量。
第二行输入 n 个整数(1 \le 整数 \le 100),分别表示从左到右每个靶上的数,整数之间以一个空格隔开。
输出格式
输出一个整数,表示击中所有靶后能得到的最高积分。
输入输出样例
输入 #1
4 3 2 4 6
输出 #1
120
暂无题解
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?