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

printЗадачи

1570. Выжимание воды

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

Для уменьшения количества "воды" в текстах можно либо научиться писать кратко, либо просто сжимать получивщиеся тексты. Естественно, для программиста легче использовать второй путь.
Напишите программу, сжимающую текст. Словом будем называть последовательность прописных и строчных латинских букв (до 50 символов). Регистр букв игнорируется.
x-ray состоит из 2 слов X и RAY
Mary's состоит из 2 слов MARY и S
It's words состоит из 3 слов IT, S и WORDS
Повторяющееся слово будем заменять символом # и номером его последнего вхождения, отсчитываемым от текущего слова. Если слово достаточно коротко (при замене не происходит уменьшения текста), то замену не делаем. Знаки препинания, разделение на строки, остается как в исходном тексте.
Входной файл содержит текст для сжатия (от 1 до 50 строк, не более 80 символов в строке, не более 200 слов в тексте).
Выходной файл должен содержать получившийся сжатый текст.

Пример ввода

Dear Sally,

   Please, please do it--it would please
Mary very, very much.  And Mary would
do everything in Mary's power to make
it pay off for you.
   -- Thank you very much--

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

Dear Sally,

   Please, #1 do it--it would #5
Mary very, #1 much.  And #5 #8
do everything in #5's power to make
it pay off for you.
   -- Thank #2 #20 #20--
loading