Dada una partitura musical ASCII, debe poder emitir la nota y su longitud correspondiente. El puntaje contendrá entre 5 y 15 notas inclusive, y se transcribe en un pentagrama. Un pentagrama se compone de cinco líneas horizontales que comprenden - (menos) caracteres separados por líneas de espacios. La línea de fondo en el pentagrama es equivalente a la nota 'E'. La línea de espacios inmediatamente arriba de la línea inferior indica una 'F', y es de un tono más alto que la 'E' debajo de ella. Esto continúa como a continuación. Tenga en cuenta que las notas solo suben a 'G' antes de comenzar nuevamente en 'A'. Vea abajo:
F ----------
E
D ----------
C
B ----------
A
G ----------
F
E ----------
Tenga en cuenta que las letras no están incluidas en la entrada. Las notas se superponen en la parte superior del pentagrama utilizando un carácter ao (minúscula ooh) para indicar la "cabeza de la nota". Este encabezado de nota indica la frecuencia de la nota y, por lo tanto, la representación alfabética de la misma como se indicó anteriormente. Por ejemplo, una nota colocada en el puntaje como se indica a continuación indica una 'A':
----
----
----
o
----
----
Una nota, como la 'A' anterior, se llama 'nota completa' y se tocaría durante un tiempo completo. Se pueden indicar otras duraciones al incluir un 'vástago' que se eleva desde la nota y entre cero y tres 'banderas'. Un tallo se compone de tres | (tubería o barra vertical) caracteres apilados inmediatamente encima del encabezado de la nota. Un tallo sin banderas se considera un 'cuarto de nota', y juega durante un cuarto de segundo. Las banderas son caracteres \ (barra invertida) y se encuentran en el lado derecho del tallo. Cada vástago reduce a la mitad el tiempo de reproducción de la nota. La duración de cada nota será una de las siguientes: una nota completa, un cuarto de nota, una octava nota, una semicorchea o una nota de treinta segundos. Así se vería cada tipo de nota para A:
--------------------
----|---|\--|\--|\--
| | |\ |\
----|---|---|---|\--
o o o o o
--------------------
--------------------
Poner más de una nota juntos te da una puntuación. Se puede considerar que cada nota tiene cuatro caracteres de ancho, con una nota en la primera columna de cada bloque de cuatro caracteres. Por ejemplo :
|\
----|\--|\----------
|\ | |\
----o---|---o---|\--
| o |
|---------------o---
|
o-------------------
--------------------
El ejemplo anterior contiene las siguientes notas, en orden: un cuarto de nota 'G', una nota de treinta segundos 'D', una octava nota 'C', una nota completa 'D' y una decimosexta nota 'B'. Cada nota en su salida debe estar en el formato letra / longitud, donde la letra es AG y la longitud es la fracción de la longitud de la nota en comparación con una nota completa. Como excepción, la longitud y / carácter no deben imprimirse si la nota es una nota completa. Cada nota en su salida debe estar separada por un solo espacio. Por lo tanto, para el puntaje anterior, su código debería generar lo siguiente:
G/4 D/32 C/8 D B/16
- Las notas estarán en el siguiente rango: EFGABCDE F. Tenga en cuenta que solo se necesita imprimir la letra, se ignora la octava.
- Tenga en cuenta que el número de líneas de entrada varía de 9 a 12, ya que las notas con un cuarto de hora o menos en la línea D o superior requerirán que se muestren más líneas por completo.
- No hay media nota en este caso.
El código más corto gana (el espacio en blanco no cuenta).
Editar: corrigió el error en el espaciado en una entrada.
Algunas entradas de muestra:
|\
----|\--|-------------------
|\ | |
|---|---o---------------o---
| o |\
o---------------|\--|\------
|\ |\ |\
------------|\--|\--o-------
|\ o
------------o---------------
Salida: B / 8 C / 8 D / 8 E / 32 F / 32 G / 32 D
----------------o-------------------
o
------------o-----------------------
o
--------o---------------------------
o
----o-------------------------------
o
o-----------------------------------
Salida: EGBDFFACE
|\
|\
|\
------------o-------|-----------
| o | |\
|---|\--------------|---|\------
| | o |\
o---|---|\--------------o---|\--
o |\ |\
--------|\------------------|---
o o
--------------------------------
Salida: B / 4 A / 8 F / 32 F / 32 EC / 4 B / 32 F / 16