#P16026. [CSPro 23] 数组推导

[CSPro 23] 数组推导

题目背景

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

题目描述

A1,A2,,AnA_1, A_2, \cdots , A_n 是一个由 nn 个自然数(即非负整数)组成的数组。在此基础上,我们用数组 B1BnB_1 \cdots B_n 表示 AA 的前缀最大值。

Bi=maxA1,A2,,AiB_i = \max {A_1, A_2, \cdots , A_i}

如上所示,BiB_i 定义为数组 AA 中前 ii 个数的最大值。根据该定义易知 A1=B1A_1 = B_1,且随着 ii 的增大,BiB_i 单调不降。此外,我们用 sum=A1+A2++An\mathrm{sum} = A_1 + A_2 + \cdots + A_n 表示数组 AAnn 个数的总和。

现已知数组 BB,我们想要根据 BB 的值来反推数组 AA。显然,对于给定的 BBAA 的取值可能并不唯一。试计算,在数组 AA 所有可能的取值情况中,sum\mathrm{sum} 的最大值和最小值分别是多少?

输入格式

从标准输入读入数据。

输入的第一行包含一个正整数 nn

输入的第二行包含 nn 个用空格分隔的自然数 B1,B2,,BnB_1, B_2, \cdots , B_n

输出格式

输出到标准输出。

输出共两行。

第一行输出一个整数,表示 sum\mathrm{sum} 的最大值。

第二行输出一个整数,表示 sum\mathrm{sum} 的最小值。

6
0 0 5 5 10 10
30
15
7
10 20 30 40 50 60 75
285
285

提示

样例 1 解释

数组 AA 的可能取值包括但不限于以下三种情况。

情况一:A=[0,0,5,5,10,10]A = [0, 0, 5, 5, 10, 10]

情况二:A=[0,0,5,3,10,4]A = [0, 0, 5, 3, 10, 4]

情况三:A=[0,0,5,0,10,0]A = [0, 0, 5, 0, 10, 0]

其中第一种情况 sum=30\mathrm{sum} = 30 为最大值,第三种情况 sum=15\mathrm{sum} = 15 为最小值。

样例 2 解释

A=[10,20,30,40,50,60,75]A = [10, 20, 30, 40, 50, 60, 75] 是唯一可能的取值,所以 sum\mathrm{sum} 的最大、最小值均为 285285

子任务

50%50\% 的测试数据满足数组 BB 单调递增,即 0<B1<B2<<Bn<1050 < B_1 < B_2 < \cdots < B_n < 10^5

全部的测试数据满足 n100n \leq 100 且数组 BB 单调不降,即 0B1B2Bn1050 \leq B_1 \leq B_2 \leq \cdots \leq B_n \leq 10^5