BASIC의 PLAY 문

MML 악보가 주어질 때 음높이, 음 길이, 음량과 쉼표가 같은 가장 짧은 악보의 문자 수를 구합니다.

보통7동적 계획법시뮬레이션문자열아직 제출이 없습니다시간 제한5초메모리 제한512 MB

문제

오래된 BASIC 방언에는 PLAY 문이 있다. PLAY 문은 MML(Music Macro Language)로 적은 악보 문자열을 받아 그 음악을 연주한다. 이 문제에서 쓰는 MML 명령은 다음과 같다.

음표: Cn, C+n, C-n, Dn, D+n, D-n, En, ... (n은 1, 2, 4, 8, 16, 32, 64, 128과 점)

음이름은 C, D, E, F, G, A, B 일곱 개 중 하나이고, 뒤에 +(올림표)나 -(내림표)를 붙일 수 있다. C부터 B까지가 한 옥타브를 이루며 배치는 아래 그림과 같다. 각 음표가 속하는 옥타브는 그 시점의 현재 옥타브이고, 현재 옥타브는 옥타브 명령으로 정한다. 가장 낮은 옥타브(1)의 C-와 가장 높은 옥타브(8)의 B+는 연주할 수 없다.

길이 지정자는 1, 2, 4, 8, 16, 32, 64, 128 중 하나이다. 1은 온음표, 2는 2분음표, 4는 4분음표, 8은 8분음표를 뜻한다. 길이 지정자는 생략할 수 있고, 생략하면 L 명령으로 정한 기본 길이를 쓴다. 숫자 뒤에는 점을 붙일 수 있다. 점 하나는 바로 앞 길이의 절반을 더한다. 예를 들어 4.48을 더한 길이, 즉 4의 1.5배이다. 점은 여러 개 붙일 수 있고, 점이 하나 늘 때마다 직전에 더한 길이의 절반을 다시 더한다. 4..4816을 더한 길이이고, 4...은 거기에 32를 더한 길이이다. 점이 더하는 길이는 128보다 짧아질 수 없어서 128.이나 32...은 쓸 수 없다. 숫자 없이 점만 쓰면 기본 길이를 늘린다. 기본 길이가 4일 때 C.C4.과 같다. C4C8C4.은 다르다. 앞은 서로 다른 음표 두 개이고 뒤는 음표 하나이다.

쉼표: Rn (n은 1, 2, 4, 8, 16, 32, 64, 128과 점)

R 명령은 지정한 길이만큼 쉰다. 길이는 음표와 같은 방식으로 적고 생략할 수도 있다. R4R8R4.은 같다. 둘 다 48을 합한 길이만큼 쉬기 때문이다. 이 점이 C4C8C4.의 관계와 다르다.

옥타브: On (n은 1부터 8까지), <, >

O 명령은 현재 옥타브를 지정한 번호로 바꾼다. >는 한 옥타브 올리고 <는 한 옥타브 내린다. 이 명령으로 옥타브를 1보다 낮게 또는 8보다 높게 만들 수는 없다. 현재 옥타브의 처음 값은 4이다.

기본 길이: Ln (n은 1, 2, 4, 8, 16, 32, 64, 128)

L 명령은 기본 길이를 정한다. 숫자는 음표와 같은 방식으로 적지만 생략할 수 없고 점을 붙일 수도 없다. 기본 길이의 처음 값은 4이다.

음량: Vn (n은 1부터 255까지)

V 명령은 현재 음량을 정한다. 값이 클수록 크게 난다. 음량의 처음 값은 100이다.

두 MML 시퀀스가 같은 음악을 연주한다는 것은 다음을 모두 만족한다는 뜻이다. 음표의 개수가 같고, 순서대로 짝지은 음표마다 소리의 높이와 길이와 음량이 같으며, 이웃한 두 음표 사이에 쉬는 길이가 같다. 소리의 높이만 같으면 되므로 옥타브 4의 B+와 옥타브 5의 C는 같은 음이다.

MML 시퀀스가 주어진다. 같은 음악을 연주하는 가장 짧은 MML 시퀀스의 글자 수를 구하라. 가장 짧은 시퀀스를 다 연주한 뒤의 옥타브, 음량, 기본 길이는 원래 시퀀스와 달라도 된다.

입력

입력은 여러 개의 데이터 세트로 이루어진다. 각 데이터 세트는 100,000자 이하의 MML 시퀀스 한 줄이다. 위에서 설명한 명령만 나온다. 각 시퀀스에는 음표가 하나 이상 있고, 첫 음표 앞과 마지막 음표 뒤에는 쉼표가 없다.

입력의 끝은 * 한 글자만 있는 줄로 나타낸다. 이 줄은 데이터 세트가 아니므로 처리하지 않는다. 데이터 세트는 100개 이하이고, 모든 시퀀스의 길이 합은 200,000자를 넘지 않는다.

출력

각 데이터 세트마다 Case k: n 형식으로 한 줄씩 출력한다. k는 1부터 시작하는 데이터 세트 번호이고, n은 같은 음악을 연주하는 가장 짧은 MML 시퀀스의 글자 수이다.