Codeforces Round 352 (Div. 2) |
---|
Закончено |
Однажды умный старец сказал Кариму, что разнообразие — это хорошо, и с тех пор Карим хочет, чтобы всё в его жизни было разнообразным.
Недавно Кариму подарили строку s, состоящую из строчных букв английского алфавита. Поскольку Карим любит разнообразие, то он хочет, чтобы все подстроки строки s были различными. Подстрокой строки s называется некоторое количество последовательных символов данной строки. Например, подстроками строки «aba» являются «» (пустая подстрока), «a», «b», «a», «ab», «ba» и «aba».
Если хотя бы две подстроки строки s совпадают, то Карим меняет символы в некоторых позициях на другие строчные буквы английского алфавита. Менять символы очень утомительно, поэтому Карим хотел бы сделать как можно меньше изменений.
По данной строке s определите минимальное количество изменений, которое потребуется внести в строку, чтобы все её подстроки стали различными, или определите, что это невозможно.
В первой строке входных данных записано целое число n (1 ≤ n ≤ 100 000) — длина строки s.
Во второй строке записана строка s длины n, состоящая из строчных букв английского алфавита.
Если невозможно изменить строку s так, чтобы все её подстроки были различны, то выведите -1. В противном случае выведите минимальное количество изменений, которое позволит Кариму достичь цели.
2
aa
1
4
koko
2
5
murat
0
В первом примере одним из возможных решений будет заменить первый символ строки на «b».
Во втором примере можно заменить первый символ на «a», а второй на «b», получив таким образом строку «abko».
Название |
---|