펙갈스발센
면접 대비시간 제한2초메모리 제한1024 MB
서로 다른 K개의 문자로 이루어진 문자열에서 각 문자를 쓰는 순서를 정해 오른쪽 화살표를 누르는 총 횟수를 최소로 만들고, 그 최솟값을 출력한다.
문제
Doris는 가족에게 보낼 긴 이메일을 쓰고 있다. 글은 서로 다른 개의 문자로 이루어져 있고 길이는 이다. Doris는 기억력이 좋지 않아서 키보드에서 각 문자가 어디에 있는지 기억하지 못한다. 대신 그녀는 이른바 펙갈스발센이라는 방식으로 글을 쓴다.
Doris는 글을 번에 나누어 쓰는데, 각 번에는 글을 구성하는 서로 다른 문자 하나씩을 담당한다. 먼저 Doris는 한쪽 갈로 어떤 문자의 모든 등장 위치를 적는다. 그다음 글의 처음으로 돌아가서 새 문자를 고른다. 이어서 다른 쪽 갈로 오른쪽 화살표 키를 사용해 그 문자의 모든 등장 위치를 적는다. 그 후 다시 글의 처음으로 돌아가서 세 번째 문자를 적고, 이런 식으로 계속한다. 글 전체를 다 쓸 때까지 이 과정을 반복한다. 이렇게 하면 Doris는 한 번에 한 문자에 대한 키 위치만 기억하면 된다.
문자를 적는 순서에 따라 걸리는 시간이 달라진다. 글 aabbac를 적을 때 순서 a, b, c는 오른쪽 화살표를 7번 누르게 한다. 먼저 오른쪽 화살표를 쓰지 않고 aaa를 적는다. 그다음 글의 처음으로 돌아가 오른쪽 화살표를 두 번 쓰고 bb를 적는다. 마지막으로 처음으로 돌아가 다섯 번 오른쪽으로 간 뒤 c를 적는다.
대신 순서 b, a, c를 골랐다면 먼저 bb를 적었을 것이다. 그다음 오른쪽 화살표를 두 번 눌러 aabba를 적고, 마지막으로 다섯 번 더 눌러 aabbac를 적었을 것이다.
순서 c, b, a는 오른쪽 화살표를 두 번만 누르면 되며, 이 순서가 최적이다.
입력
첫째 줄에는 양의 정수 과 가 주어진다. 다음 줄에는 알파벳 처음 개의 소문자(a, b, c, ...) 중에서 고른 개의 문자로 이루어진 문자열이 주어진다.
출력
Doris가 글을 쓰기 위해 오른쪽 화살표를 눌러야 하는 횟수를 하나의 수로 출력한다.