Nebius Welcome Round (Div. 1 + Div. 2) |
---|
Закончено |
У Лары есть сейф, который запирается кодовым замком в форме круга, состоящим из вращающейся стрелки, статической окружности вокруг стрелки, экрана ввода и кнопки ввода.
Окружность замка разбита на $$$k$$$ равных секторов, пронумерованных от $$$1$$$ до $$$k$$$ по часовой стрелке, вращающаяся стрелка всегда указывает на один из этих секторов. Каждому сектору соответствует одна из первых $$$k$$$ букв английского алфавита, причём никаким двум секторам не соответствует одна и та же буква.
Из-за ограничений устройства сейфа пароль от него представляет собой строку длины $$$n$$$, состоящую из только первых $$$k$$$ букв английского алфавита. Лара вводит пароль поворачивая стрелку замка и нажимая кнопку ввода. Изначально стрелка замка указывает на секцию $$$1$$$, а экран ввода пуст, далее за одну секунду Лара может выполнить одно из следующих действий.
Как только содержимое экрана ввода совпадёт с паролем, сейф откроется. Лара всегда действует таким образом, чтобы вводить свой пароль за минимально возможное время.
Недавно Лара узнала, что сейф можно перепрограммировать. Она может взять первые $$$k$$$ букв английского алфавита и переназначить их секторам в произвольном порядке. Теперь она хочет переназначить буквы таким образом, чтобы свести к минимуму количество секунд, необходимых ей для ввода пароля. Вычислите это минимально возможное количество секунд, а также вычислите количество способов расставить буквы по секторам, для которых это минимальное количество секунд будет достигаться.
Два способа назначения букв секторам считаются различными, если существует хотя бы один сектор $$$i$$$, которому в этих способах назначены разные буквы.
Первая строка входных данных содержит два целых числа $$$k$$$ и $$$n$$$ ($$$2 \leq k \leq 16$$$, $$$2 \leq n \leq 100\,000$$$) — количество секторов на окружности замка и длину пароля Лары соответственно.
Вторая строка входных данных содержит строку длины $$$n$$$, состоящую только из первых $$$k$$$ строчных букв английского алфавита. Эта строка является паролем.
В первой строке выведите минимально возможное количество секунд, за которое Лара введёт пароль и откроет сейф, если она оптимально расставит буквы по секторам.
Во второй строке выведите количество способов оптимально расставить буквы.
3 10 abcabcabca
19 2
4 20 bcbcbcbcadadadadcbda
40 2
4 6 adcbda
12 4
Начальные состояния оптимальных способов для первого примера показаны на рисунке ниже.
Начальные состояния оптимальных способов для второго примера показаны на рисунке ниже.
Начальные состояния оптимальных способов для третьего примера показаны на рисунке ниже.
Название |
---|