题目链接
https://www.luogu.org/problem/P5019
分析
依次枚举每个位置,考虑在前一位置填好的情况下对该位置的影响;
第 1 1 1 个位置要填满,
此后,若下陷深度不超过前一位置,则在填前一位置时可顺便填好;
若下陷深度大于前一位置,则还需填上两位置的深度差。
AC代码
#include <cstdio>
inline int read() {
int num = 0;
char c = getchar();
while (c < '0' || c > '9') c = getchar();
while (c >= '0' && c <= '9')
num = num * 10 + c - '0', c = getchar();
return num;
}
const int maxn = 1e5 + 5;
int a[maxn];
int main() {
int n = read(), ans = 0;
for (int i = 1; i <= n; ++i) {
a[i] = read();
if (i == 1) ans = a[i];
else if (a[i] > a[i - 1]) ans += a[i] - a[i - 1];
}
printf("%d", ans);
return 0;
}