El arreglo sombra#13057

El arreglo sombra

2 segundos
256 megabytes
Difícil

Para un arreglo de enteros positivos, su arreglo sombra de longitud se define de la siguiente manera:

h_i = \min\left(\max_{j=1}^{i} a_j, \max_{j=i}^{n} a_j\right)

Se te da el arreglo sombra . Tu tarea es encontrar la cantidad de arreglos originales válidos, formados por enteros positivos, que podrían haber producido .

Como esta cantidad puede ser muy grande, muéstrala módulo 10^9 + 7.

Entrada

La primera línea contiene un único entero (1 \le t \le 10^4) — la cantidad de casos de prueba.

La primera línea de cada caso de prueba contiene un único entero (1 \le n \le 10^6) — la longitud del arreglo.

La segunda línea de cada caso de prueba contiene enteros h_1, h_2, \dots, h_n (1 \le h_i \le 10^9) — los elementos del arreglo sombra .

Se garantiza que la suma de sobre todos los casos de prueba no excede 10^6.

Salida

Para cada caso de prueba, muestra un único entero — la cantidad de arreglos originales válidos módulo 10^9 + 7.

Ejemplos

Ejemplo 1

Loading
Loading

Nota

En el primer caso de prueba, h = [2, 2, 2]. Existen exactamente arreglos originales válidos que producen este arreglo sombra:

  • a = [2, 1, 2]

  • a = [2, 2, 2]

Puntuación

  • Subtarea ( puntos): \sum n \le 8 y h_i \le 8.

  • Subtarea ( puntos): \sum n \le 1000 y h_i \le 100.

  • Subtarea ( puntos): Sin restricciones adicionales.