题目信息
解题思路
- 假设现在有相邻的两个坑(设深度左小右大),下标为i - 1和i,那么我们肯定会选择将这两个坑的深度同时 - 1(可以带上其它坑)。
- 当小坑填完时,大坑的深度也减少了d[i] - d[i - 1]。
- 得出结论:
代码实现
#include <bits/stdc++.h>
using namespace std;
const int N = 100000;
int d[N];
int main() {
int n;
cin >> n;
int res = 0;
for (int i = 0; i < n; ++i) {
cin >> d[i];
}
int sum = 0;
for (int i = 1; i < n; ++i) {
sum += max(d[i] - d[i - 1], 0);
}
cout << sum + d[0] << '\n';
return 0;
}
致谢
十分感谢@ZVAF_的指正。