Замовлення від викладача
Limits: 4 sec., 256 MiB
До компанії Зеника й Марічки PLVIV звернувся із замовленням викладач університету.
Викладач задав студентам виконати роботу на тему «Обробка запитів знаходження лексикографічно найменшого суфікса-паліндрома для підрядків заданого рядка».
Робота полягає в розв’язанні такої задачі.
Задано рядок ss довжини nn з малих латинських букв.
Треба відповісти на qq запитів. Кожен запит — це деякий підрядок sl..rsl..r. Для кожного запиту потрібно знайти лексикографічно найменший суфікс підрядка sl..rsl..r, який є паліндромом.
Рядок pp довжини mm є суфіксом рядка qq, якщо останні mm символів рядка qq збігаються з pp.
Лексикографічний порядок — це порядок слів у словнику.
Рядок pp довжини mm є паліндромом, якщо для всіх ii (1≤i≤m1≤i≤m) ii-ий символ спочатку та ii-ий символ з кінця збігаються.
Викладачу потрібна програма, щоб перевіряти роботу його студентів.
Напишіть програму, яка розв’язує задачу.
Input
У першому рядку задано ціле число nn — довжину рядка.
У другому рядку задано ss.
У третьому рядку записано ціле число qq — кількість запитів.
У наступних qq рядках задано по два цілі числа ll, rr — межі підрядка.
Output
У qq рядках виведіть відповіді на всі запити.
Constraints
1≤n≤3⋅1051≤n≤3⋅105,
ss складається з малих латинських букв,
1≤q≤3⋅1051≤q≤3⋅105,
1≤l≤r≤n1≤l≤r≤n для кожного запиту.
Samples
Input (stdin) | Output (stdout) |
---|---|
4 aabc 3 1 2 3 3 3 4 | a b c |
Notes
У підрядка
aa
є два суфікси:aa
іa
, і обидва є паліндромами.a
є лексикографічно меншим заaa
, бо йде в словнику раніше.У підрядка
b
є один суфіксb
, який є паліндромом.У підрядка
bc
є два суфікси:bc
іc
. Тільки суфіксc
є паліндромом.