2654: 【单调栈】2023A-天然蓄水池
金币值:
1
时间限制:2.000 s
内存限制:128 M
正确:27
提交:96
正确率:28.13% 命题人:
题目描述
公元 2919 年,人类终于发现了一颗宜居星球——X 星。现想在 X 星一片连绵起伏的山脉间建一个天热蓄水库,如何选取水库边界,使蓄水量最大?
山脉用正整数数组 s 表示,每个元素代表山脉的高度。选取山脉上两个点作为蓄水库的边界,则边界内的区域可以蓄水,蓄水量需排除山脉占用的空间。
蓄水量的高度为两边界的最小值。 如果出现多个满足条件的边界,应选取距离最近的一组边界。 输出边界下标(从 0 开始)和最大蓄水量;如果无法蓄水,则返回 0,此时不返回边界。
例如,当山脉为 s=[3,1,2]时,则选取 s[0]和 s[2]作为水库边界,最大蓄水量为 1,此时输出:0 2:1
当山脉 s = [3,2,1]时,不存在合理的边界,此时输出 0。
输入格式
一行正整数,用空格隔开,例如输入1 2 3表示 s = [1,2,3]
输出格式
当存在合理的水库边界时,输出左边界、空格、右边界、英文冒号、蓄水量,例如0 2:1
当不存在合理的水库边界时,输出 0。
输入样例 复制
1 9 6 2 5 4 9 3 7
输出样例 复制
1 6:19
提示
经过分析,选取 s[1]和 s[6] 时,水库蓄水量为 3+7+4+5 = 19 为最大蓄水量