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;
}
posted @ 2021-12-16 14:28  Eason_AC  阅读(55)  评论(0)    收藏  举报