eolymp
bolt
Спробуйте наш новий інтерфейс для відправки розв'язків
Задачі

Гірськолижний курорт

Гірськолижний курорт

\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 секунда
Ліміт використання пам'яті 64 MiB
Вхідні дані #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
Автор Кожухівський Віталій
Джерело Дистанційна Літня Комп`ютерна Школа - літо 2013 року