Biorąc pod uwagę partyturę ascii, musisz mieć możliwość wygenerowania nuty i odpowiadającej jej długości. Partytura będzie zawierać od 5 do 15 nut włącznie i jest zapisywana na pięciolinii. Klepka składa się z pięciu poziomych linii składających się z - (minus) znaków oddzielonych liniami spacji. Dolna linia w pięciolinii odpowiada nucie „E”. Linia odstępów bezpośrednio nad dolną linią wskazuje „F” i ma wyższy skok niż „E” poniżej. Trwa to jak poniżej. Zauważ, że nuty idą w górę do „G”, zanim zaczną ponownie od „A”. Patrz poniżej:
F ----------
E
D ----------
C
B ----------
A
G ----------
F
E ----------
Zauważ, że litery nie są zawarte w danych wejściowych. Nuty nakładają się na pięciolinię za pomocą znaku ao (małe litery ooh), aby wskazać „główkę nuty”. Ta główka nuty wskazuje częstotliwość nuty, a zatem jej alfabetyczną reprezentację, jak powyżej. Na przykład nuta umieszczona na partyturze, jak poniżej, oznacza „A”:
----
----
----
o
----
----
Nuta, taka jak „A” powyżej, nazywa się „całą nutą” i byłaby odtwarzana przez cały jeden takt. Inne czasy trwania można wskazać, włączając „trzon” powstający z nuty oraz od zera do trzech „flag”. Trzon składa się z trzech | (rura lub pionowy pasek) znaki ułożone bezpośrednio nad głowicą nuty. Trzon bez flag jest uważany za „ćwierćnuta” i gra przez ćwierć uderzenia. Flagi to znaki \ (odwrotny ukośnik) i ręka po prawej stronie rdzenia. Każdy trzon zmniejsza o połowę czas grania nuty. Długość każdej nuty będzie następująca: cała nuta, ćwierćnuta, ósma nuta, szesnasta nuta lub trzydziestosekundowa nuta. Tak wyglądałby każdy typ notatki A:
--------------------
----|---|\--|\--|\--
| | |\ |\
----|---|---|---|\--
o o o o o
--------------------
--------------------
Połączenie więcej niż jednej nuty daje wynik. Każda nuta może mieć szerokość czterech znaków, przy czym nuta znajduje się w pierwszej kolumnie każdego czteroznakowego bloku. Na przykład :
|\
----|\--|\----------
|\ | |\
----o---|---o---|\--
| o |
|---------------o---
|
o-------------------
--------------------
Powyższy przykład zawiera następujące nuty w kolejności: ćwierćnuta „G”, trzydziestosekundowa nuta „D”, ósma nuta „C”, cała nuta „D” i szesnasta nuta „B”. Każda nuta na wydruku powinna mieć format litera / długość, gdzie litera to AG, a długość to ułamek długości nuty w porównaniu do całej nuty. Jako wyjątek, długość i / / znak nie powinny być drukowane, jeśli notatka jest całą notatką. Każda nuta w twoich wynikach powinna być oddzielona pojedynczym odstępem. Dlatego dla powyższego wyniku kod powinien wypisać następujące dane:
G/4 D/32 C/8 D B/16
- Nuty będą miały następujący zakres: EFGABCDE F. Uwaga: należy wydrukować tylko literę, oktawa jest ignorowana.
- Zauważ, że liczba linii wejściowych waha się od 9 do 12, ponieważ nuty z kwadransami lub mniej w linii D lub wyższej będą wymagały więcej linii do pełnego wyświetlenia.
- W tym przypadku nie ma półnuty.
Najkrótszy kod wygrywa (białe znaki się nie liczą).
Edycja: Naprawiono błąd w odstępach na jednym wejściu.
Niektóre przykładowe dane wejściowe:
|\
----|\--|-------------------
|\ | |
|---|---o---------------o---
| o |\
o---------------|\--|\------
|\ |\ |\
------------|\--|\--o-------
|\ o
------------o---------------
Wyjście: B / 8 C / 8 D / 8 E / 32 F / 32 G / 32 D.
----------------o-------------------
o
------------o-----------------------
o
--------o---------------------------
o
----o-------------------------------
o
o-----------------------------------
Wyjście: EGBDFFACE
|\
|\
|\
------------o-------|-----------
| o | |\
|---|\--------------|---|\------
| | o |\
o---|---|\--------------o---|\--
o |\ |\
--------|\------------------|---
o o
--------------------------------
Wyjście: B / 4 A / 8 F / 32 F / 32 EC / 4 B / 32 F / 16