베라와 연회
시간 제한2초메모리 제한512 MB
원형으로 배치된 문자열 S에서 시계 방향이나 반시계 방향으로 읽은 연속 블록에 나타나는 서로 다른 부분 문자열의 개수를 센다.
문제
베라는 a부터 z까지 소문자 한 글자로 나타내는 레시피 26가지를 안다. 베라는 원형 식탁에 요리 개를 놓아 연회를 준비한다. 베라는 게을러서 요리마다 레시피 26가지 중 하나를 독립적으로 균등하게 무작위로 고른다. 연회는 길이가 인 문자열 로 나타내고, 의 번째 문자가 번 요리의 레시피다. 인 에 대해 번 요리는 번 요리의 시계 방향 옆자리에 있고, 1번 요리는 번 요리의 시계 방향 옆자리에 있다.
표본은 식탁에 연속으로 놓인 요리의 레시피를 시계 방향이나 반시계 방향 중 한쪽으로 읽은 수열이다. 표본의 길이는 1 이상 이하다. 두 표본은 길이가 같고 모든 위치의 레시피가 같을 때 같은 표본이다.
서로 다른 표본이 몇 개인지 구하여라.
입력
첫째 줄에 정수 이 주어진다. ()
둘째 줄에 소문자 개로 이루어진 문자열 가 주어진다.
출력
서로 다른 표본의 개수를 한 줄에 출력한다.
노트
이고 가 aba 이면 서로 다른 표본은 a, b, aa, ab, ba, aba, aab, baa로 모두 8개다.
이고 가 ondrej 이면 rejo 와 drejon 은 시계 방향 표본이고, nojer 와 dnojer 는 반시계 방향 표본이다.