AT5221 [ABC140C] Maximal Value 题解
Content
有一个长度为 \(n\) 的数列 \(A\) 未知,已知一个数列 \(B=\{b_1,b_2,...,b_{n-1}\}\),且满足 \(b_i\geqslant \max\{a_i,a_{i+1}\}\)。求原数列 \(A\) 的元素和的最大值。
数据范围:\(n\in[2,100],b_i\in[0,10^5]\)。
Solution
很显然,\(a_i\) 的最大值为 \(\min\{b_i,b_{i-1}\}\),所以先逐个更新 \(a_i\),然后直接求和即可。
Code
int n, b[107], a[107];
int main() {
n = Rint;
memset(a, 0x3f, sizeof(a));
F(i, 1, n - 1) {
b[i] = Rint;
a[i] = min(a[i], b[i]), a[i + 1] = b[i];
}
int sum = 0;
F(i, 1, n) sum += a[i];
return printf("%d\n", sum), 0;
}