SP27218 HJB - Segmentation
题目描述
鲍勃刚刚从母亲克森西那里获得了一个包含 $n$ 个整数的数组 $A$。母亲要求他计算这个数组的"优良度"。
我们定义 $f(a, b)$ 为数组 $A$ 在区间 $[a, b]$ 内的最小值。数组的优良度是指满足以下条件的区间对 $[a, b]$, $[c, d]$ 的数量:$1 \leq a \leq b < c \leq d \leq n$,且 $f(a, b) \leq f(c, d)$。
由于鲍勃几天后要参加毕业考试,现在正在阅读必读书目的内容概要,因此他需要你帮忙解答这个难题来回应母亲的提问。
输入格式
第一行输入一个整数 $n$ ($1 \leq n \leq 5\times 10^5$)。
第二行输入n个用空格分隔的整数 $A_1, A_2,\ldots ,A_n$ ( $0 \leq Ai \leq 10^9$),表示数组元素。
输出格式
输出一个整数表示数组 $A$ 的优良度。由于答案可能很大,请将结果对 $10^9 + 7$ ($1000000007$)取模后输出。