printРабочее место участника

printЗадачи

922. Преобразование строки

Ограничения: время – 2s/4s, память – 32MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0)

В строке записаны строчные (маленькие) латинские буквы, все подряд в алфавитном порядке от 'a' до некоторой `"lastchar"`. ('a' ≤ `"lastchar"` ≤ 'z'). Нужно превратить все буквы строки в заглавные (большие), придерживаясь таких правил:
- менять регистр буквы 'a' можно когда угодно;
- менять регистр любой другой буквы можно если и только если предыдущая – первая по порядку заглавная (например, в строке "aBcdEf" можно изменить регистр 'с' и получить "aBCdEf"). Кратчайшую возможную последовательность всех замен регистров можно представить в виде строки, заглавные буквы которой указывают, что соответствующая буква переводится из нижнего регистра в верхний, строчные – наоборот. Ваша программа должна найти `("st",\ "len")`-подстроку этой строки, т. е. такую подстроку, что её первым символом является `"st"`-ый символ упомянутой строки (нумерация начинается с единицы), количество символов подстроки равно `"len"` (если только упомянутая строка не закончится раньше).
Ввод содержит одну маленькую латинскую букву (значение `"lastchar"`), потом (через пробелы) значения начала `"st"` и длины `"len"` (`1\ ≤\ "len"\ ≤\ 10^5`).
Програма должна вывести искомую подстроку последовательности замен регистров.

Пример ввода 1

c 1 10

Вывод для примера 1

ABaCA

Пример ввода 2

c 2 3

Вывод для примера 2

BaC
Источник: Всеукраинская Интернет-олимпиада по информатике NetOI-2006
loading