Час

10:13:31
25 May 2012
Версія для друку

A-функція від рядка

   Дано рядок S, який складається з n символів. Визначимо функцію A(i) від перших i символів цього рядка наступним чином: A(i) дорівнює такому максимально можливому k, що наступні рядки рівні:

S[1] + S[2] + S[3] + … + S[k],

S[i] + S[i1] + S[i2] + … + S[ik+1],

   де S[i] – i-ий символ рядка S, а знак + означає, що символи записуються у рядок безпосередньо один за одним.

   Напишіть програму, яка обчислить значення функції A для заданого рядка для всіх можливих значень i від 1 до n.


Технічні умови

   Вхідні дані

   У першому рядку записано одне число n (1n200000). У другому рядку записано рядок довжиною n символів, що складається лише з великих і (або) маленьких латинських літер.

   Вихідні дані

   Виведіть n чисел - значення функції A(1), A(2), … A(n).


Інформація про задачу

Ліміт часу: 1 секунда
Ліміт пам`яті: 64 MB
Бали за пройдений тест: 4.54545
Складність: 40% 12/20

Приклад

Приклад вхідних даних

5
aabaa

Приклад вихідних даних

1 2 0 1 5


← Гра Список задач Циркове шоу →