P16026 [CSPro 23] 数组推导

题目背景

洛谷的测试数据仅供民间交流使用,非官方测试数据。官方评测链接:。

题目描述

$A_1, A_2, \cdots , A_n$ 是一个由 $n$ 个自然数(即非负整数)组成的数组。在此基础上,我们用数组 $B_1 \cdots B_n$ 表示 $A$ 的前缀最大值。 $$ B_i = \max {A_1, A_2, \cdots , A_i} $$ 如上所示,$B_i$ 定义为数组 $A$ 中前 $i$ 个数的最大值。根据该定义易知 $A_1 = B_1$,且随着 $i$ 的增大,$B_i$ 单调不降。此外,我们用 $\mathrm{sum} = A_1 + A_2 + \cdots + A_n$ 表示数组 $A$ 中 $n$ 个数的总和。 现已知数组 $B$,我们想要根据 $B$ 的值来反推数组 $A$。显然,对于给定的 $B$,$A$ 的取值可能并不唯一。试计算,在数组 $A$ 所有可能的取值情况中,$\mathrm{sum}$ 的最大值和最小值分别是多少?

输入格式

从标准输入读入数据。 输入的第一行包含一个正整数 $n$。 输入的第二行包含 $n$ 个用空格分隔的自然数 $B_1, B_2, \cdots , B_n$。

输出格式

输出到标准输出。 输出共两行。 第一行输出一个整数,表示 $\mathrm{sum}$ 的最大值。 第二行输出一个整数,表示 $\mathrm{sum}$ 的最小值。

说明/提示

### 样例 1 解释 数组 $A$ 的可能取值包括但不限于以下三种情况。 情况一:$A = [0, 0, 5, 5, 10, 10]$ 情况二:$A = [0, 0, 5, 3, 10, 4]$ 情况三:$A = [0, 0, 5, 0, 10, 0]$ 其中第一种情况 $\mathrm{sum} = 30$ 为最大值,第三种情况 $\mathrm{sum} = 15$ 为最小值。 ### 样例 2 解释 $A = [10, 20, 30, 40, 50, 60, 75]$ 是唯一可能的取值,所以 $\mathrm{sum}$ 的最大、最小值均为 $285$。 ### 子任务 $50\%$ 的测试数据满足数组 $B$ 单调递增,即 $0 < B_1 < B_2 < \cdots < B_n < 10^5$; 全部的测试数据满足 $n \leq 100$ 且数组 $B$ 单调不降,即 $0 \leq B_1 \leq B_2 \leq \cdots \leq B_n \leq 10^5$。