만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

섞인 메시지

시간 제한2초메모리 제한2048 MB

요약
여러 메시지가 섞인 문자열에서 그중 하나가 spbsu일 때, 원래 메시지 순서로 되돌리는 데 필요한 최소 인접 교환 횟수를 구합니다.
난이도

보통10점 중 6점

유형
동적 계획법, 문자열
정답자
아직 제출이 없습니다

문제

Nikita는 오늘 메시지를 여러 개 받았다. 그중 하나는 암호 단어 "spbsu"였다. 이 암호 단어의 앞뒤에는 다른 메시지가 몇 개든 있었을 수 있다. 다른 메시지는 영어 소문자로 이루어진 임의의 문자열이다.

모든 메시지는 비밀 채널을 통해 하나씩 전송되었다. 따라서 채널의 문자열은 처음에 모든 메시지를 이어 붙인 것이었다.

하지만 채널은 잡음을 일으킬 수 있다. 서로 다른 메시지끼리 간섭할 수 있기 때문이다. 잡음은 자리 바꿈의 형태로 나타난다. 자리 바꿈 한 번에서 채널은 원래 서로 다른 메시지에 속했던 인접한 두 문자를 골라 맞바꾼다. 같은 메시지에 속한 문자끼리는 상대적인 순서가 유지된다.

모든 자리 바꿈이 끝난 뒤 Nikita는 결과 문자열을 받는다. 이 문자열이 주어졌을 때, 채널이 수행한 자리 바꿈 횟수의 최솟값을 구하라.

입력

첫 줄에 받은 문자의 개수를 나타내는 정수 nn이 주어진다. 이때 5≤n≤1055 \leq n \leq 10^5이다.

다음 줄에는 Nikita가 받은 영어 소문자 nn개로 이루어진 문자열 ss가 주어진다. ss는 위에서 설명한 과정의 결과임이 보장된다.

출력

문제의 답인 정수 하나를 출력한다.

예제2

  1. 예제 1

    입력
    6
    spbssu
    
    예상 출력
    1
    
  2. 예제 2

    입력
    15
    spongebaseurban
    
    예상 출력
    11