Problem8912--YACS - IAI 2023年8月月赛乙组 T4 —— 极值的和

8912: YACS - IAI 2023年8月月赛乙组 T4 —— 极值的和

[Creator : ]
Time Limit : 1.000 sec  Memory Limit : 512 MiB

Description

给定一个序列 $a_1,a_2,a_3,…,a_n$,请求出该序列每一个连续子序列的最大值,并计算这些最大值的和。
也就是求出 $\sum_{1≤i≤j≤n}\text{max}\{a_i,a_{i+1},⋯,a_j\}$。

Input

第一行:单个整数 $n$。
第二行:$n$ 个整数表示 $a_1,a_2,…,a_n$。

Output

单个整数:表示所有区间最大数的和

Constraints

对于 30% 的数据,$1≤n≤500$
对于 60% 的数据,$1≤n≤50,000$
对于 100% 的数据,$1≤n≤500,000$
$0≤a_i≤1,000,000$

Sample 1 Input

4
3 2 4 3

Sample 1 Output

35
(1)第一个元素 3 作为最大值的区间有 [1,1],[1,2],共 2 个,则这个 3 对答案的贡献为 3×2=6;
(2)第二个元素 2 作为最大值的区间有 [2,2],共 1 个,则这个 2 对答案的贡献为 2×1=2;
(3)第三个元素 4 作为最大值的区间有 [3,3],[2,3],[1,3],[3,4],[2,4],[1,4],共 6 个,则这个 4 对答案的贡献为 4×6=24;
(4)第四个元素 3 作为最大值的区间有 [4,4],共 1 个,则这个 3 对答案的贡献为 3×1=3;
最终答案即为上述贡献之和:6+2+24+3=35。

Sample 2 Input

3
4 5 6

Sample 2 Output

32

Sample 3 Input

2
8 6

Sample 3 Output

22

3
6 5 4

32

Sample 4 Input

2
6 8

Sample 4 Output

22
6 + 8 + 8 = 22

HINT

相同题目:IAI月赛

Source/Category