华为OD机试 - 天然蓄水库(C++题解)
1. 题目描述
在X星上连绵的山脉间建立天然蓄水库,目标是在给定的山脉高度数组中找到最大蓄水量的边界。蓄水量的高度由两侧边界中较低的高度决定,同时需要排除山脉占用的空间。如果有多个满足条件的边界,则选取距离最近的一组边界。蓄水量为零时输出 0。
要求:
- 山脉由一个正整数数组表示,每个元素表示山脉的高度。
- 选取山脉中的两个点作为蓄水库的边界,计算区域的蓄水量。
- 如果无法蓄水,则返回 0。
输入描述:
一行正整数,用空格隔开,例如:
1 9 6 2 5 4 9 3 7
表示山脉高度数组 s = [1, 9, 6, 2, 5, 4, 9, 3, 7]
。
输出描述:
当存在合理的水库边界时,输出左边界、右边界及蓄水量,例如:
1 6:19
当不存在合理的水库边界时,输出 0:
0