HILO (Золото)#11226

HILO (Золото)

1 секунда
128 мегабайтів
Дуже складна

Бесі знає число x + 0.5, де — це деяке ціле число від до , включно.

Ельза намагається вгадати це число. Вона може ставити запитання типу "чи більше число ?" для деякого від до , включно. Бесі відповідає "HI", якщо число більше, ніж x + 0.5, або "LO", якщо число менше, ніж x + 0.5.

Ельза дотримується такої стратегії під час вгадування числа. Спочатку вона створює список з чисел, де кожне число від до зустрічається рівно один раз (іншими словами, цей список є перестановкою розміру ). Потім вона проходить по цьому списку, запитуючи числа по порядку з цього списку.

Однак Ельза пропускає непотрібні запитання. Наприклад, якщо Ельза повинна запитати про число , а раніше вона запитувала про число j < i і Бесі відповідала "HI", тоді Ельза не запитує про і переходить до наступного числа в перестановці. Аналогічно, якщо вона раніше запитувала про j > i і отримувала відповідь "LO", Ельза не запитує про і переходить до наступного числа в списку. Можна довести, що дотримуючись такої стратегії, Ельза завжди однозначно визначить незалежно від перестановки, яку створить.

Якщо ми об'єднаємо всі відповіді Бесі виду "HI" або "LO" в один рядок , тоді кількість разів, коли Бесі сказала "HILO", дорівнює кількості підрядків довжини в рядку , які дорівнюють "HILO".

Бесі знає стратегію Ельзи; більше того, вона також знає точну перестановку, яку Ельза буде використовувати. Однак Бесі ще не вирішила, яке число використовувати.

Допоможіть Бесі визначити, скільки разів вона скаже "HILO" для кожного значення .

Вхідні дані

Перший рядок містить (1 \le n \le 2 \cdot 10^5).

Другий рядок містить перестановку Ельзи розміру .

Вихідні дані

Для кожного в інтервалі від до , включно, на окремому рядку виведіть кількість разів, яке Бесі скаже "HILO".

Приклади

Приклад 1

Loading
Loading

Примітка

Для x = 0, Бесі скаже "HIHI" — разів.

Для x = 2, Бесі скаже "HILOLOHIHI" — один раз "HILO".

Для x = 3, Бесі скаже "HILOLOHILO" — два рази "HILO".