Processing math: 100%
编程题
                ### 问题描述

P 是一个喜欢数学和爬山的人,突然有一天他在计算杨辉三角时发现,杨辉三角的每一行都像「山」一样,从左向右先递增后递减。

于是他想知道如果有一个长为 n 的数列 a1,a2,...,an,有多少种不同的方式可以构造出「山」型。由于结果可能很大,所以请对 109+7 取模。

「山」的定义:

  1. 存在一个 j 满足 $a_{j-1}<a_j$ 并且="" $a_{j+1}<a_j$。="" 2.="" 所有满足条件的="" $i$="" 都满足="" $a_i="" \leq="" a_{i+1}(1="" i="" <j-1)$。="" 3.="" \geq="" a_{i+1}(j+1="" <="" n)$。="" 例如:="" $1="" 2="" 1$="" 是「山」="" ,$1="" 不是「山」="" 1="" 2$="" 也不是「山」="" 。="" ###="" 输入格式="" 第一行包含一个正整数="" $n$,表示给定的数列长度。="" 第二行包含="" $n$="" 个正整数="" $a_i$,表示给出的原始数列排列。="" 数据范围保证:$1="" n="" 10^{5},="" 1\leq="" a_{i}="" 10^{9}$。="" 输出格式="" 输出仅一行,包含一个正整数,表示有多少种构造方案。="" 样例输入1="" text="" 3="" ="" 样例输出1="" 样例输入2="" 样例输出2="" 样例1说明="" 两种构造方式分别为:$1,3,2$="" 和="" $2,3,1$。="" div="">


    </a_j$>