VK Cup 2018 - Квалификация 1 |
---|
Закончено |
Аркадий работает копирайтером. Сегодня ему нужно написать некоторый текст, который он уже продумал до мельчайших подробностей, но еще не набрал. Для набора текста Аркадий использует свою любимый текстовый редактор.
Аркадий набирает слова, знаки препинания и пробельные символы один за другим, для набора каждой буквы и каждого знака (в том числе перевода строки) требуется одно нажатие клавиши на клавиатуре. При этом, когда Аркадий набрал непустой префикс некоторого слова (в том числе слово полностью), его редактор подсказывает возможное автоматическое дополнение для текущего слова: слово из числа тех, которые Аркадий набрал до этого, префикс которого совпадает с текущим набранным префиксом, если такое слово уникально. Например, если Аркадий уже набрал слова «codeforces», «coding» и еще раз «codeforces», то, если он наберет префикс «cod», то редактор ему ничего не подскажет, а если он наберет префикс «code», редактор подскажет «codeforces». При этом не важно, собирается ли Аркадий набрать слово «codeforces» или, например, «codebest».
Одним нажатием клавиши Аркадий может использовать подсказку, то есть дополнить текущий префикс до слова, предложенного редактором, при этом никаких других символов после слова автоматически не ставится и можно продолжить набирать слово. Какое минимальное число нажатий на клавиши необходимо Аркадию для того, чтобы набрать текст, если он не может перемещать курсор и стирать уже написанные буквы и другие символы?
Формально словом называется непрерывная последовательность латинских букв, с обоих концов ограниченная пробелами, знаками препинания, началом или концом строки или текста. Аркадий использует только строчные буквы. Например, в тексте «it's well-known that tic-tac-toe is a paper-and-pencil game for two players, x and o.» 20 слов.
Входные данные содержат текст, который нужно набрать Аркадию. Текст состоит только из строчных латинских букв, пробелов, переводов строк, а также знаков препинания «.», «,», «?», «!», «'» и «-». Суммарное количество символов в тексте не превосходит 3·105. Пустых строк нет, каждая строка заканчивается на букву или знак препинания, за которым следует перевод строки.
Выведите одно целое число — минимальное количество нажатий на клавиши, которое должен сделать Аркадий.
snow affects sports such as skiing, snowboarding, and snowmachine travel.
snowboarding is a recreational activity and olympic and paralympic sport.
141
'co-co-co, codeforces?!'
25
thun-thun-thunder, thunder, thunder
thunder, thun-, thunder
thun-thun-thunder, thunder
thunder, feel the thunder
lightning then the thunder
thunder, feel the thunder
lightning then the thunder
thunder, thunder
183
В первом примере нужно воспользоваться автодополнением для первого слова «snowboarding» после того, как набран префикс «sn», и для второго слова «snowboarding» после того, как набран префикс «snowb». Суммарно это экономит 7 нажатий.
Во втором примере все равно, пользоваться автодополнением, или нет.
В третьем нужно можно воспользоваться автодополнением для второго слова после набора «t», для третьего слова — после набора «t», затем набрать его до конца, далее слова «thun» надо набирать полностью, а для набора «thunder» необходимо набирать «thund», затем пользоваться автодополнением, кроме того, надо пользоваться автодополнением для вторых слов «lightning» и «feel» после набора одной буквы.
Название |
---|