При наличии партитуры ascii у вас должна быть возможность вывести ноту и соответствующую ей длину. Партитура будет содержать от 5 до 15 нот включительно и будет записана на нотном стане. Посох состоит из пяти горизонтальных линий, состоящих из - (минус) символов, разделенных линиями пробелов. Нижняя строка в нотном стане эквивалентна ноте 'E'. Линия пробелов непосредственно над нижней строкой обозначает «F» и имеет более высокую высоту, чем «E» под ней. Это продолжается, как показано ниже. Обратите внимание, что ноты доходят только до «G», а затем снова начинаются с «A». См. ниже:
F ----------
E
D ----------
C
B ----------
A
G ----------
F
E ----------
Обратите внимание, что буквы не включены во входные данные. Ноты накладываются на верхнюю часть нотного станка, используя символ ao (нижний регистр ooh) для обозначения «заголовка ноты». Этот заголовок примечания указывает частоту примечания и, следовательно, его буквенное представление, как указано выше. Например, примечание, помещенное в партитуру, как показано ниже, обозначает «A»:
----
----
----
o
----
----
Нота, как и вышеприведенная буква «А», называется «целой нотой» и будет воспроизводиться за один полный удар. Другие длительности могут быть указаны включением «стебля», поднимающегося из ноты, и между нолем и тремя «флагами». Стебель состоит из трех | (труба или вертикальная черта) символы располагаются непосредственно над заголовком заметки. Стебель без флагов считается четвертной нотой и играет четверть удара. Флаги являются символами \ (обратная косая черта) и находятся на правой стороне ствола. Каждый ствол делится пополам на время, за которое играется нота. Длина каждой ноты будет одной из следующих: целая нота, четвертная нота, восьмая нота, шестнадцатая нота или тридцать вторая нота. Вот как каждый тип заметки будет выглядеть для A:
--------------------
----|---|\--|\--|\--
| | |\ |\
----|---|---|---|\--
o o o o o
--------------------
--------------------
Соединение более чем одной записки дает вам оценку. Каждую заметку можно считать шириной в четыре символа, причем заметка находится в первом столбце каждого четырехсимвольного блока. Например :
|\
----|\--|\----------
|\ | |\
----o---|---o---|\--
| o |
|---------------o---
|
o-------------------
--------------------
Приведенный выше пример содержит следующие примечания по порядку: четвертная нота «G», тридцать вторая нота «D», восьмая нота «C», целая нота «D» и шестнадцатая нота «B». Каждая заметка в выходных данных должна быть в формате буква / длина, где буква - это AG, а длина - это доля длины заметки по сравнению с целой заметкой. Как исключение, длина и / символ не должны быть напечатаны, если заметка является целой заметкой. Каждая нота в вашем выводе должна быть отделена одним пробелом. Следовательно, для оценки выше ваш код должен вывести следующее:
G/4 D/32 C/8 D B/16
- Примечания будут в следующем диапазоне: EFGABCDE F. Обратите внимание, что только буква должна быть напечатана, октава игнорируется.
- Обратите внимание, что количество строк ввода варьируется от 9 до 12, поскольку примечания с четвертным или меньшим временем в строке D или выше потребуют больше строк для полного отображения.
- В этом случае нет полулоты.
Самый короткий код выигрывает (пробел не считается).
Редактировать: Исправлена ошибка в интервале в одном входе.
Некоторые примеры входных данных:
|\
----|\--|-------------------
|\ | |
|---|---o---------------o---
| o |\
o---------------|\--|\------
|\ |\ |\
------------|\--|\--o-------
|\ o
------------o---------------
Выход: B / 8 C / 8 D / 8 E / 32 F / 32 G / 32 D
----------------o-------------------
o
------------o-----------------------
o
--------o---------------------------
o
----o-------------------------------
o
o-----------------------------------
Выход: EGBDFFACE
|\
|\
|\
------------o-------|-----------
| o | |\
|---|\--------------|---|\------
| | o |\
o---|---|\--------------o---|\--
o |\ |\
--------|\------------------|---
o o
--------------------------------
Выход: B / 4 A / 8 F / 32 F / 32 EC / 4 B / 32 F / 16