Несправедлива шеренга
Limits: 2 sec., 256 MiB
У класі є n учнів. Зріст i-ого учня — hi.
На уроці захисту Вітчизни їх вишикують у шеренгу. Нехай зріст i-ого учня в шерензі — ai. Формально масив a — це деяка перестановка масиву h.
Для i-ого учня в шерензі знайдемо найближчого зліва учня j такого, що aj≥ai. Якщо такого учня не існує, то покладемо li=∞, інакше li=aj.
Аналогічно, знайдемо для i-ого учня в шерензі знайдемо найближчого справа учня j такого, що aj≥ai. Якщо такого учня не існує, то покладемо ri=∞, інакше ri=aj.
Зеник вважає, що учень стоїть на несправедливому місці, якщо 2⋅ai≤li та 2⋅ai≤ri.
Шеренга вважається несправедливою, якщо кожен учень стоїть на несправедливому місці.
Порахуйте, скільки несправедливих шеренг, що мають різний вигляд, можна утворити з учнів класу за модулем простого числа 109+7.
Шеренги a і b мають різний вигляд, якщо ai≠bi для деякого i.
Input
У першому рядку задано ціле число n — кількість учнів у класі.
У другому рядку задано n цілих чисел hi — зрости учнів класу.
Output
Виведіть ціле число — остачу від ділення відповіді на просте число 109+7.
Constraints
1≤n≤105,
1≤hi≤109.
Samples
Input (stdin) | Output (stdout) |
---|---|
3 1 1 2 | 1 |
Notes
У прикладі умову задачі задовольняє тільки шеренга a=[1,2,1].
Від першого учня в шерензі не стоїть ніхто зліва, тому l1=∞. Праворуч від нього стоїть вищий учень зі зростом 2, тому r1=2.
Другий учень у шерензі є вищим за всіх інших, тому l2=r2=∞.
l3=2,r3=∞.
Для цієї шеренги виконуються всі умови 2⋅a1≤l1,2⋅a1≤r1,2⋅a2≤l2,2⋅a2≤r2,2⋅a3≤l3,2⋅a3≤r3.
Зауважте, що хоч і два учні мають однаковий зріст 1, перестановка їх місцями не змінить вигляд шеренги.