페이지가 로드되지 않나요? 여기를 눌러보면 고쳐질 수도 있어요.
Placeholder

#10391

달과 우산 10s 1024MB

문제

코디-자말(Cody-Jamal)은 최신 추상미술 작품을 만들고 있다. 이 작품은 점점 이지러지는 달(waning moon)과 접힌 우산(closed umbrella)들이 한 줄로 배열된 벽화이다. 하지만 탐욕스러운 저작권 트롤들이, 이지러지는 달이 대문자 C처럼 보이고 접힌 우산이 J처럼 보인다며, 문자열 CJ와 JC에 대한 저작권을 주장하고 있다. 그래서 벽화에 CJ가 나타날 때마다 코디-자말은 \mathbf{X}를 지불해야 하고, JC가 나타날 때마다 \mathbf{Y}를 지불해야 한다.

코디-자말은 이미 그려진 부분을 바꿔 예술을 훼손하고 싶지 않다. 하지만 아직 비어 있는 칸들은 전략적으로 채워 저작권 비용을 최소화할 수 있다고 생각했다.

예를 들어 벽화의 현재 상태가 CJ?CC?라고 하자. 여기서 C는 이지러지는 달, J는 접힌 우산, ?는 아직 그려지지 않았으며 달 또는 우산 중 하나로 채워야 하는 칸을 의미한다. 코디-자말은 벽화를 CJCCCC, CJCCCJ, CJJCCC, CJJCCJ 중 하나로 완성할 수 있다. 첫 번째와 세 번째 선택지는 저작권 비용이 \mathbf{X} + \mathbf{Y}이고, 두 번째와 네 번째 선택지는 2 \cdot \mathbf{X} + \mathbf{Y}가 된다.

비용 \mathbf{X}, \mathbf{Y}와 벽화의 현재 상태를 나타내는 문자열이 주어질 때, 완성된 벽화의 저작권 비용이 최소가 되도록 빈 칸을 채운다면 코디-자말이 지불해야 하는 저작권 비용은 얼마인가?


입력

입력의 첫 줄에는 테스트 케이스 수 \mathbf{T}가 주어진다. 그 다음 \mathbf{T}줄이 이어진다. 각 줄에는 두 정수 \mathbf{X}, \mathbf{Y}와 문자열 \mathbf{S}가 주어진다. 이는 각각 두 비용과 벽화의 현재 상태를 나타낸다.


출력

각 테스트 케이스마다 Case #x: y 형식의 한 줄을 출력하라. 여기서 x는 (1부터 시작하는) 테스트 케이스 번호이고, y는 벽화를 완성했을 때 코디-자말이 지불해야 하는 저작권 비용의 최소값이다.


예제 #1

4
2 3 CJ?CC?
4 2 CJCJ
1 3 C?J
2 5 ??J???
Case #1: 5
Case #2: 10
Case #3: 1
Case #4: 0
테스트 세트 3의 샘플 케이스 #1에서 Cody-Jamal은 JCJJCC 또는 JCJJJC로 최적 완성할 수 있다. 어느 경우든 벽화에는 CJ가 1개, JC가 2개 있다.

예제 #2

1
2 -5 ??JJ??
Case #1: -8

출처

GCJ 2021qr B

로그인해야 코드를 작성할 수 있어요.