luogu#P2614. 计算器弹琴
计算器弹琴
题目背景
小 A 发现了一个计算器的另一个隐藏功能——弹琴。
题目描述
在计算器的某个模式里,如果按上一个键,比如说 1
,就会发出中音 Do
。
这里给出按键音高表。
+ 低音Fa
< 低音So
* 低音La
/ 低音Xi
1 中音Do
2 中音Re
3 中音Mi
4 中音Fa
5 中音So
6 中音La
7 高音Xi
8 高音Do
9 高音Re
= 高音Mi
% 高音Fa
C 高音So
M 高音La
现在小 A 搞到了一份乐谱——我们称为计算器谱,一种变形的简谱。
时值(也就是按的时间长度)是这么记录的,例如:
1
是四分音符,占 拍。
1-
是二分音符,占 拍。
1---
是全音符,占 拍。
对于小于四分音符的音符,我们用嵌套括号表示,例如:
(1(34(56))2)
1
和 2
在一层括号中,是八分音符,占 拍。
3
和 4
在两层括号中,是 分音符,占 拍。
5
和 6
在三层括号中,是 分音符,占 拍。
数据中最多只会出现 分音符,没有更短的音符了。
括号中不会出现 -
这个符号。
在一个音符后面添加一个附点即 .
表示这个音符延长1/2倍。
例如,1-.
是 拍,1.
是 拍,(3.(45.))
中 3
是 拍,4
是 拍,5
是 拍。
附点不会连续添加两个或以上。全音符不会有附点。
不考虑其他的乐理符号。
另外,整个乐谱会给出一个整数 ,为每分钟的拍数。
为了美观,乐谱可以随便换行、添加空格。输入时可以忽略。
现在小 A 想知道,按完这个谱子,需要多少秒。
输入格式
第一行,两个整数 ,表示谱子行数以及每分钟的拍数。
接下来 行,给出乐谱。
输出格式
一个整数,表示演奏需要花费的时间,单位秒,如果是小数则向下取整到整数。
2 60
3345 5432 1123 322-
3345 5432 1123 211-
32
5 120
3(1.(3))55 8(7.(6))65 655(3.(1)) (4.(4))32-
3(1.(2))35 8(7.(6))65 655(4.(3)) (2.(3))21-
2.(3)44 6(6.(6))(5.(4))3 3.(5)88 (9.(8)7.(6))5-
=.(=)(9.(8))7 9.(8)(7.(6))5 8(856543) (2.(3))43-
=.(=)(9.(8))7 9.(8)(7.(6))5 8(857654) (3.(4))21-
40
提示
样例解释
对于第一组样例,有 个四分音符,有 个二分音符,总共 拍,每分钟 拍,则总共需要 秒。
数据范围
对于 的数据,不会出现 (
、)
、.
字符。
对于 的数据,,每行不超过 个字符。