僵尸启示录已经来临,世界即将终结。突然,某人发现了一个公式,该公式需要当前的小时,分钟和日期,然后吐出一个完美的音符以弹奏钢琴,这会立即杀死每一个听到它的僵尸。不幸的是,世界上只剩下一名钢琴演奏者,他已经忘记了如何阅读笔记,但是他仍然知道如何阅读乐谱。当然,这是非常时间敏感的事情,因此拥有一台计算机似乎很自然。1个
您的挑战是记下一个音符(例如)G
,并输出放在五线谱上(高音谱号)的音符,如下所示:
-----
-----
|
---|-
|
--O--
-----
规格:
- 您必须输出由
-----
(5点划线)和空白行组成的交替行。总共有5-----
s。注释必须叠加在此职员的上方。 - 输入将指定注释的位置。输入将是:
- 可选的
H
或L
,指定“高”或“低” - 从
A
to 的字母G
,指定音高 - 可选的
#
或b
,指定为锐利或平坦。
- 可选的
- “注释”定义为:
- 一个
O
(大写O)与工作人员中间对齐,位于笔记的位置。(最上面的一行是HF
(高F),最下面的一行是E
(正常E)。) - 三秒
|
(竖线),茎,将为:- 如果音符在中线(
B
)或上方,则在音符左侧留一个空格,然后向下移动(从音符下方开始一个空格),或者 - 音符右边的一个空格,如果音符在中线以下,则向上移动(从音符上方开始一个空格)。
- 如果音符在中线(
- 如果在输入中指定,则在音符左侧直接一个
#
或b
一个空格。
- 一个
- 如果音符太高或太低,则必须添加分类帐行。这些行将是
---
(宽度只有3个破折号,而不是5个破折号),并且仅在注释在总帐本行的上方或下方(分别针对顶部/底部总帐行)时才显示。 - 多余的空间可以放置在您想要的任何位置;例如,如果可以帮助保存任何字符,则可以使空白行具有空格或在分类帐行之后具有空格。
这是一个可视化视图,为了更容易地理解规格,所有注释名称都位于各行旁边:
HB
--- HA
HG
----- HF
HE
----- HD
HC
----- B
A
----- G
F
----- E
D
--- C
LB
--- LA
LG
--- LF
... (bottom cut off for brevity, you get the idea anyway)
这里有一些更多的示例可用于测试程序:
输入: HG#
#O
-|---
|
-|---
-----
-----
-----
输入: LAb
-----
-----
-----
-----
-----
|
--|
|
bO-
输入: HB
O
|--
|
-|---
-----
-----
-----
-----
输入: C
-----
-----
-----
-----
|
---|-
|
-O-
这是代码高尔夫球,因此最短的代码(以字节为单位)将获胜!
1:最现实的博览会evar!:-P
#
或b
右边而不是左边看起来很奇怪。真的需要什么吗?