Школа программиста

Забыли пароль?
[задачи] [курсы] [олимпиады] [регистрация]
Логин:   Пароль:    
Скрыть меню
О школе
Правила
Олимпиады
Фотоальбом
Гостевая
Форум
Архив олимпиад
Архив задач
Состояние системы
Рейтинг
Курсы
Новичкам
Работа в системе
Курсы ККДП
Дистрибутивы
Статьи
Ссылки


 

Сжатие строки

(Время: 0,25 сек. Память: 32 Мб Сложность: 87%)

Сжатие строки определяется числом подряд идущих блоков одинаковых символов. Например, в строке «aabbbcaaaad» будет пять блоков: {aa, bbb, c, aaaa, d}. Таким образом, не все строки будут хорошо сжиматься, особенно если буквы часто чередуются. Для этого, перед тем как строку сжимать, будем применять к ней некоторую перестановку чисел от 1 до N. Длина строки кратна длине перестановки, поэтому перестановку применяем сначала для символов от 1 до N, потом от N+1 до 2×N и так далее. Применить перестановку к строке – это значит поменять позиции символов в строке на те позиции, которые в перестановке. Например, если N = 5, взята перестановка «3, 1, 4, 2, 5» и строка «abaabfdzdd», то получим строку «aaabbzfddd». Таким образом, если сжимать строку сразу, то получим восемь блоков {a, b, aa, b, f, d, z, dd}, а если после перестановки, то будет пять блоков {aaa, bb, z, f, ddd}. Как мы видим, размер сжатой строки зависит от выбранной перестановки.

Ваша задача максимально сжать строку, то есть определить минимально возможное число блоков.

Входные данные

Входной файл INPUT.TXT содержит в первой строке натуральное число N (2 ≤ N ≤ 16). Во второй строке содержится строка, состоящая из строчных букв английского алфавита. Длина строки не превышает 106.

Выходные данные

В выходной файл OUTPUT.TXT выведите ответ на задачу.

Примеры

INPUT.TXTOUTPUT.TXT
15
mirmirmirmirmir
7
23
mirmirmirmirmir
15

Автор задачи

Владимир Игоревич Лукьянчиков

Для отправки решения задачи необходимо зарегистрироваться и авторизоваться!

[Обсуждение] [Все попытки] [Лучшие попытки]


 Язык программирования C++
 Решение олимпиадных задач
 Региональные олимпиады
 ЕГЭ по информатике
 Авторские задачи
 Тренировочные олимпиады
 Фёдор Меньшиков. Олимпиадные задачи по программированию, 2006
 Сборник задач В.И. Лукьянчикова
 Булева Алгебра
 Геометрия
 Динамическое программирование
 Комбинаторика
 Разбор строк
 Разное
 Разное 2
 Рекурсия, перебор
 Системы счисления
 Сортировка и последовательности
 Теория графов
 Формула
 Целочисленная арифметика
 Целочисленная арифметика 2
 Структуры данных
 Бинарный поиск
 Занимательная математика
 Занимательная математика 2
 Занимательная математика 3
 A. Красивые буквы
 B. Маска 2
 C. Хаотичность подстроки
 D. Полный алфавит
 E. RIMDALF
 F. Маска 3
 G. Маска 4
 H. Частотная буква
 I. Редактор с заменами
 J. Различные слова
 K. Маска 1
 L. Маска 5
 M. Разбей на палиндромы
 N. Штрих-код
 O. Тормозной механизм 2
 P. Сжатие строки
 Q. Поврежденный пароль 2

Красноярский краевой Дворец пионеров, (c)2006 - 2026, ИНН 246305493507, E-mail: admin@acmp.ru



Применяется высокоточная стоматология на всех этапах.