Тіньовий масив#13057

Тіньовий масив

2 секунди
256 мегабайтів
Складна

Для масиву з додатних цілих чисел його тіньовий масив довжини визначається так:

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

Вам дано тіньовий масив . Ваше завдання — знайти кількість допустимих початкових масивів , що складаються з додатних цілих чисел і могли породити .

Оскільки ця кількість може бути дуже великою, виведіть її за модулем 10^9 + 7.

Вхідні дані

Перший рядок містить одне ціле число (1 \le t \le 10^4) — кількість наборів вхідних даних.

Перший рядок кожного набору вхідних даних містить одне ціле число (1 \le n \le 10^6) — довжину масиву.

Другий рядок кожного набору вхідних даних містить цілих чисел h_1, h_2, \dots, h_n (1 \le h_i \le 10^9) — елементи тіньового масиву .

Гарантується, що сума по всіх наборах вхідних даних не перевищує 10^6.

Вихідні дані

Для кожного набору вхідних даних виведіть одне ціле число — кількість допустимих початкових масивів за модулем 10^9 + 7.

Приклади

Приклад 1

Loading
Loading

Примітка

У першому наборі вхідних даних h = [2, 2, 2]. Існує рівно допустимі початкові масиви , які породжують цей тіньовий масив:

  • a = [2, 1, 2]

  • a = [2, 2, 2]

Оцінювання

  • Підзадача ( балів): \sum n \le 8 і h_i \le 8.

  • Підзадача ( балів): \sum n \le 1000 і h_i \le 100.

  • Підзадача ( балів): Без додаткових обмежень.