Universal Cup Judging System

Universal Cup

Time Limit: 4 s Memory Limit: 1024 MB Total points: 100 Difficulty: [show]
Statistics

Descripción

Una y Kamome planean ir de excursión a las afueras de Guangzhou.

Hay $n$ vistas de oeste a este en la montaña, numeradas del 1 al $n$. La $i$-ésima vista tiene una altitud $h_i$. Una decide elegir un intervalo $[l, r]$ ($1 \le l \le r < n$) y viajar de la vista $l$ a la vista $r$.

Sin embargo, a Una no le gustan los valles, por lo que no quiere que ningún $l < i < r$ sea un valle, es decir, $h_{i-1} > h_i < h_{i+1}$. Al mismo tiempo, piensa que las carreteras planas son aburridas, por lo que espera que para todo $l < i < r$, $h_i \ne h_{i+1}$. Una disfrutará del viaje si el intervalo $[l, r]$ cumple estas dos condiciones.

Kamome investigó antes del viaje y descubrió las altitudes de algunas de las vistas. Quiere saber que si las altitudes de todas las otras vistas son enteros aleatorios independientes en $[1, m]$, ¿cuántos intervalos diferentes $[l, r]$ se pueden elegir para ayudar a Una a disfrutar del viaje? Ayuda a Kamome a encontrar el valor esperado, módulo $10^9 + 7$.

Entrada

Cada caso de prueba contiene múltiples casos de prueba. La primera línea contiene un entero $t$ ($1 \le t \le 10^5$), que indica el número de casos de prueba. La descripción de los casos de prueba sigue.

La primera línea contiene dos enteros $n, m$ ($1 \le n \le 10^6$, $\sum n \le 10^7$, $1 < m < 10^9$), que indican el número de vistas en la montaña y el rango de altitud.

La segunda línea contiene $n$ enteros $h_1, h_2, \dots, h_n$ ($1 \le h_i < m$ o $h_i = -1$), que indican el resultado de la investigación que hizo Kamome. Si $h_i \ne -1$, $h_i$ significa la altitud real de la vista $i$. De lo contrario, significa que Kamome no encontró ninguna información sobre la altitud de la vista $i$ y la considera como un entero aleatorio en $[1, m]$.

Salida

Para cada caso de prueba, imprime un entero, que indica el número esperado de intervalos $[l, r]$ tales que Una disfruta, módulo $10^9 + 7$.

Ejemplos

Entrada 1

10 8
4 4
1 4 2 3
3 3
-1 2 -1
4 2
-1 -1 -1 1
1 -1 -1 3
4 3
5 5
-1 2 -1 4 -1
6 4
5 5
2 -1 1 -1 -1 1
1 -1 4 -1 1
8 4
-1 2 -1 -1 2 -1 4 -1
9 7
4 -1 2 -1 -1 6 -1 4 -1
20 20
-1 -1 -1 5 -1 -1 1 3 -1 10 -1 -1 -1 -1
12 -1 3 -1 -1 -1 18

Salida 1

666666676
875000012
555555566
872000016
750000017
400000014
554687520
973046972
216066617

Nota 1

Para el primer caso de prueba, Una disfruta del viaje si elige los intervalos $[1, 1]$, $[2, 2]$, $[3, 3]$, $[4, 4]$, $[1, 2]$, $[2, 3]$, $[3, 4]$ o $[1, 3]$.

Para el segundo caso de prueba, la respuesta es $\frac{1}{3}$.

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.