Задачі
Гірськолижний курорт
Гірськолижний курорт
\includegraphics{https://static.e-olymp.com/content/cc/cc8e16bc5a2bfa467eb9cbae910d59025a2d7363.jpg}
Ще зовсім нещодавно Петя П’яточкін відкрив для себе, що люди з кожним днем все більше люблять лазити в горах. Отож він вирішив побудувати ресторан в Буковелі. Але ж побудувати можна де завгодно, лиш би були гроші. З фінансами у Петі все добре, тож потрібно лиш визначити найкраще місце. Визначимо як визначається краса місця.
Поблизу кожного місця є гірський хребет. Він задається послідовністю точок \textbf{(0, height_0)}, \textbf{(1, height_1)}, ..., \textbf{(n-1, height_\{n-1\})}. Кожні дві сусідні точки з'єднані відрізком. Для прикладу розглянемо наступний хребет:
\textbf{(0, 0) (1, 2) (2, 1) (3, 2) (4, 1) (5, 3) (6, 0) (7, 1) (8, 0)}
\includegraphics{https://static.e-olymp.com/content/b2/b26ebca35f4e8cb8071d4de2bfd0fe53a19a5d4b.jpg}
Відвідувачі починають подорож із якоїсь позиції \textbf{i} та закінчують у позиції \textbf{j} (\textbf{i} < \textbf{j}). Краса гірського хребта -- це кількість різних можливих подорожей. Маршрут із позиції \textbf{i} до позиції \textbf{j} -- це послідовність \textbf{(i, height_i)}, ..., \textbf{(j, height_j)}.
Дві подорожі різні, якщо: \textbf{(j_1-- i_1)} ≠ \textbf{(j_2-- i_2)} або \textbf{(height_\{i1+k\} -- height_\{i1+k-1\})} ≠ \textbf{(height_\{i2+k\} -- height_\{i2+k--1\}) }хоча б для якогось \textbf{k} в інтервалі \textbf{\[1..i_1-j_1\]}.
Розглянемо два маршрути із хребта, що вище:
\includegraphics{https://static.e-olymp.com/content/0c/0c96128ac87979dc864cc0300cff58cb7ca451a2.jpg}
та
\includegraphics{https://static.e-olymp.com/content/5a/5a4682830eb2ffa83eed4950c3ce73a20a3ff36a.jpg}
Перший -- від точки \textbf{0} до точки \textbf{3}, а другий -- від \textbf{4} до \textbf{6}. Вони різні, оскільки \textbf{(3-0)} ≠ \textbf{(6-4)}. З іншого боку, маршрути \textbf{0..1} та \textbf{4..5} однакові.
Маючи послідовність висот \textbf{heights} знайдіть значення краси маршруту. Відповідь може бути досить великим числом, тож виведіть її по модулю \textbf{1000000009}.
\InputFile
У першому рядку число \textbf{Т} -- кількість тестів (\textbf{1} ≤ \textbf{T} ≤ \textbf{1000}). У першому рядку кожного тесту число \textbf{N} -- кількість вершин (\textbf{1} ≤ \textbf{N} ≤ \textbf{100000}).
У наступному рядку \textbf{N} чисел -- вершини хребта (\textbf{|Height_i|} ≤ \textbf{10^6}, \textbf{|Height_i}-\textbf{Height_\{i-1\}|} ≤ \textbf{100 }(туристи не хочуть лазити по дуже крутих схилах)).
\OutputFile
Для кожного тестового випадку виведіть одне число -- привабливість гірського хребта.
Вхідні дані #1
3 6 1 2 3 4 5 6 9 0 2 1 2 1 3 0 1 0 7 0 5 -5 5 -5 4 -4
Вихідні дані #1
5 31 20