Замовлення від викладача
Обмеження: 4 сек., 256 МіБ
До компанії Зеника й Марічки PLVIV звернувся із замовленням викладач університету.
Викладач задав студентам виконати роботу на тему «Обробка запитів знаходження лексикографічно найменшого суфікса-паліндрома для підрядків заданого рядка».
Робота полягає в розв’язанні такої задачі.
Задано рядок s довжини n з малих латинських букв.
Треба відповісти на q запитів. Кожен запит — це деякий підрядок sl..r. Для кожного запиту потрібно знайти лексикографічно найменший суфікс підрядка sl..r, який є паліндромом.
Рядок p довжини m є суфіксом рядка q, якщо останні m символів рядка q збігаються з p.
Лексикографічний порядок — це порядок слів у словнику.
Рядок p довжини m є паліндромом, якщо для всіх i (1≤i≤m) i-ий символ спочатку та i-ий символ з кінця збігаються.
Викладачу потрібна програма, щоб перевіряти роботу його студентів.
Напишіть програму, яка розв’язує задачу.
Вхідні дані
У першому рядку задано ціле число n — довжину рядка.
У другому рядку задано s.
У третьому рядку записано ціле число q — кількість запитів.
У наступних q рядках задано по два цілі числа l, r — межі підрядка.
Вихідні дані
У q рядках виведіть відповіді на всі запити.
Обмеження
1≤n≤3⋅105,
s складається з малих латинських букв,
1≤q≤3⋅105,
1≤l≤r≤n для кожного запиту.
Приклади
Вхідні дані (stdin) | Вихідні дані (stdout) |
---|---|
4 aabc 3 1 2 3 3 3 4 | a b c |
Примітки
У підрядка
aa
є два суфікси:aa
іa
, і обидва є паліндромами.a
є лексикографічно меншим заaa
, бо йде в словнику раніше.У підрядка
b
є один суфіксb
, який є паліндромом.У підрядка
bc
є два суфікси:bc
іc
. Тільки суфіксc
є паліндромом.