아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

검은 돌과 흰 돌

시간 제한3초메모리 제한256 MB

요약
검은 돌이 흰 돌보다 모두 앞에 오도록 돌 줄을 재배열할 때 먼 교환은 A를 내고 이웃 교환은 A에서 B를 뺀 값을 내서 합계를 가장 작게 합니다.
난이도

보통10점 중 7점

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

문제

샤가와 돌프가 돌을 가지고 게임을 한다. 돌은 검은 돌 아니면 흰 돌이다. 게임을 시작할 때 돌프가 모든 돌을 왼쪽부터 한 줄로 늘어놓고, 샤가는 검은 돌이 모두 흰 돌보다 왼쪽에 오도록 순서를 바꿔야 한다.

샤가가 할 수 있는 동작은 하나뿐이다. 색이 서로 다른 두 돌을 골라 위치를 맞바꾸고, 그 대가로 돌프에게 동전 AA개를 낸다. 다만 자리를 바꾼 두 돌이 원래 이웃해 있었다면 돌프가 동전 BB개를 돌려주므로 그 교환에 실제로 드는 비용은 A−BA - B개다.

샤가는 이 게임을 계속해도 동전을 잃기만 한다는 사실을 아직 모른다. 그래도 지금처럼 두 돌을 아무렇게나 고를 때보다 잘 고를 때 동전을 덜 잃는다는 것은 안다. 검은 돌이 모두 흰 돌보다 왼쪽에 놓인 배열을 만들기까지 샤가가 돌프에게 내야 하는 동전 개수의 최솟값을 구하여라.

입력

첫째 줄에 두 정수 AA와 BB가 주어진다 (0≤B<A≤1060 \le B < A \le 10^6). AA는 교환 한 번의 비용이고, BB는 이웃한 두 돌을 교환했을 때 돌려받는 금액이다.

둘째 줄에 길이가 50005000 이하인 비어 있지 않은 문자열 SS가 주어진다. SS의 ii번째 문자는 처음 배열에서 왼쪽부터 ii번째 돌의 색을 나타낸다. 문자 B는 검은 돌, 문자 W는 흰 돌이다.

출력

검은 돌이 모두 흰 돌보다 왼쪽에 오도록 만들기 위해 샤가가 돌프에게 내야 하는 동전 개수의 최솟값을 한 줄에 출력한다.

예제3

  1. 예제 1

    입력
    2 1
    BWWB
    
    예상 출력
    2
    
  2. 예제 2

    입력
    5 3
    WBWWBWBWBWBBBWWBBB
    
    예상 출력
    27
    
  3. 예제 3

    입력
    1000000 0
    W
    
    예상 출력
    0