Олимпиадный тренинг

Задача . B. Набор строки


Задана строка s, состоящая из n строчных латинских букв. Вам необходимо набрать эту строку на вашей клавиатуре.

Изначально у вас есть пустая строка. Пока вы не набрали необходимую строку, вы можете применять следующую операцию:

  • дописать символ в конец строки.

Кроме того, не более одного раза вы можете применить дополнительную операцию: cкопировать строку и приписать её к самой себе.

Например, если вы хотите набрать строку abcabca, вы можете набрать её за 7 операций, если будете выписывать символы один за другим. Или вы можете набрать её за 5 операций, если вы сначала наберёте строку abc, затем скопируете её и допишете последний символ.

Если вам нужно набрать строку aaaaaaaaa, наилучший вариант — набрать 4 символа первой операцией, потом скопировать и приписать строку, и затем дописать последний символ.

Выведите минимальное количество операций, которое необходимо, чтобы набрать заданную строку.

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

Первая строка содержит одно целое число n (1 ≤ n ≤ 100) — длину строки. Вторая строка содержит строку s, состоящую из n строчных букв английского алфавита.

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

Выведите единственное целое число — минимальное количество ходов, которое необходимо, чтобы набрать заданную строку.

Примечание

Первый тест описан в условии задачи.

Во втором тесте вы можете только выписывать символы один за другим.


Примеры
Входные данныеВыходные данные
1 7
abcabca
5
2 8
abcdefgh
8

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя