12010. Найдовший префікс


Відправити розв'язок

Бали: 100
Time limit: 2.0s
Memory limit: 500M

Authors:
Problem type
Allowed languages
C++, Java, Pascal, Python

Вам надається рядок \(S\) довжиною \(N\), що складається з малих літер англійського алфавіту. \(x\)-й \((1≤x≤N)\) символ \(S\) є \(S_x\) .

Для кожного \(i=1,2,…,N−1\) знайдіть максимальне невід’ємне ціле число \(l\), яке задовольняє всі наступні умови:

  • \(l+i≤N\), і
  • для всіх цілих \(k\) таких, що \(1≤k≤l\), виконується, що \(S_k ​ \neq S_{k+i} ​ \).

Зауважте, що \(l=0\) завжди задовольняє умови.

Обмеження

  • N є таким цілим числом, що \(2≤N≤5000\).
  • \(S\) — рядок довжиною \(N\), що складається з малих літер англійського алфавіту.

Формат вхідних даних

Перший рядок містить ціле число \(N\).

Другий рядок містить \(S\).

Формат вихідних даних

У вихідний потік виведіть \((N−1)\) рядок.

Рядок \(x\) \((1≤x<N)\) має містити відповідь як ціле число, коли \(i=x\).

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

6
abcbac

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

5
1
2
0
1

\(S= abcbac\).

  • Коли \(i=1\), ми маємо \(S_1 ​ \neq S_2\) ​ ,\(S_2 ​ \neq S_3\) ​ ,… і \(S_5 ​ \neq S_6 ​ \), тому максимальне значення дорівнює \(l=5\).
  • Коли \(i=2\), ми маємо \(S_1 ​ \neq S_3\) ​, але \(S_2 ​ =S_4\) ​, тому максимальне значення дорівнює \(l=1\).
  • Коли \(i=3\), ми маємо \(S_1 ​ \neq S_4\) ​ і \(S_2 ​ \neq S_5\) ​, але \(S_3 ​ =S_6\) ​, тому максимальне значення дорівнює \(l=2\).
  • Коли \(i=4\), ми маємо \(S_1 =S_5 \), тому максимальне значення дорівнює \(l=0\).
  • Коли \(i=5\), ми маємо \(S+1 ​ \neq S_6\) ​ , тому максимальне значення дорівнює \(l=1\).

Коментарі

Ще немає коментарів.