- Описание
- Отправленные решения
16. RLE-сжатие
RLE-сжатие — один из самых простых методов сжатия строки, основанный на сокращении подстрок, состоящих из одинаковых символов. Сжатие осуществляется следующим образом:
- Строка разбивается на минимальное количество подстрок, состоящих из одинаковых символов. Например,
abbcaaa
превращается в строкиa
,bb
,c
,aaa
. - Каждая из полученных строк превращается в строку, состоящую из числа и буквы. Числом является количество повторений символа в этой строке, буква берётся из первого символа обрабатываемой строки. Число не добавляется, если количество символов в строке равно единице. Из предыдущего массива строк мы получаем
a
,2b
,c
,3a
. - Затем полученные строки конкатенируются в исходном порядке. В рассмотренном примере в итоге получим
a2bc3a
.
Вам дана строка , уже сжатая в -формате. Назовём строку, из которой была получена , строкой . Вам даны запросов, каждый из них представлен целыми числами и . В каждом запросе вам необходимо найти длину сжатой
подстроки .
Формат ввода
В первой строке входного файла записана строка , состоящая из строчных букв латинского алфавита и цифр . Гарантируется, что существует такая непустая строка , из которой -сжатием получается строка . Также гарантируется, что в строке не было больше одинаковых подряд идущих символов.
В следующей строке дано количество запросов . Каждая из следующих строк содержит два числа и — параметры запросов.
Формат вывода
Выведите чисел, каждое в отдельной строке — ответы на запросы в том порядке, в котором запросы были заданы во входных данных.
Ограничения
Ограничение времени
1 с
Ограничение памяти
512 МБ
Пример 1
a2bc3a
5
1 7
5 7
1 2
3 5
4 4
6
2
2
3
1
Пример 2
x1000000000yz
3
2 1000000001
2 1000000002
5938493 15938493
11
12
9