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

Задача . F. Удали строку


Задача

Темы: дп *2000

Вам задана строка \(s\) длины \(n\), состоящая только из строчных букв латинского алфавита. Вы можете применять к строке следующую операцию: взять непрерывную подстроку этой строки, состоящий из одинаковых символов и удалить её. Например, после удаление подстроки bbbb из строки abbbbaccdd вы получите строку aaccdd.

Посчитайте минимальное количество операций, необходимое для удаления всей строки \(s\).

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

В первой строке содержится целое число \(n\) (\(1 \le n \le 500\)) — длина строки \(s\).

Вторая строка содержит саму строку \(s\) (\(|s| = n\)) состоящую только из строчных букв латинского алфавита.

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

В единственное строке выведите число — минимальное количество операций, необходимое для удаления всей строки \(s\).


Примеры
Входные данныеВыходные данные
1 5
abaca
3
2 8
abcddcba
4

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

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