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 为最大蓄水量