Напишите самую короткую программу, которая генерирует гитарные вкладки для аккордов, указанных в качестве входных данных.
Чтобы у вас среди гитаристов не было преимущества, и чтобы сделать его детерминированным (и, вероятно, более простым для кодирования), вот единственные разрешенные формы аккордов:
Major chords:
E F F# G G# A A# B C C# D D#
e 0---1---2---3---4---0---1---2---3---4---5---6---
B 0---1---2---3---4---2---3---4---5---6---7---8---
G 1---2---3---4---5---2---3---4---5---6---7---8---
D 2---3---4---5---6---2---3---4---5---6---7---8---
A 2---3---4---5---6---0---1---2---3---4---5---6---
E 0---1---2---3---4---0---1---2---3---4---5---6---
Minor chords:
Em Fm F#m Gm G#m Am A#m Bm Cm C#m Dm D#m
e 0---1---2---3---4---0---1---2---3---4---5---6---
B 0---1---2---3---4---1---2---3---4---5---6---7---
G 0---1---2---3---4---2---3---4---5---6---7---8---
D 2---3---4---5---6---2---3---4---5---6---7---8---
A 2---3---4---5---6---0---1---2---3---4---5---6---
E 0---1---2---3---4---0---1---2---3---4---5---6---
Обратите внимание, что 5 первых аккордов и 7 последних аккордов каждой серии имеют разные формы.
Все аккорды являются простыми мажорными или минорными аккордами (без 7-й или других вариаций).
Вы должны заботиться о квартирах тоже. Напоминание:
A# = Bb
C# = Db
D# = Eb
F# = Gb
G# = Ab
B#, Cb, E# and Fb are not used
Выходные данные должны содержать первый столбец с именами кабелей, как показано выше. Он не должен включать название аккорда на вершине. Аккорды должны быть разделены на 3, -
как показано выше. Финальные 3 -
являются необязательными.
Ввод - это строка, состоящая из имен аккордов, разделенных пробелами.
Пример ввода:
Bm Gb A E G D Em F#
и соответствующий вывод:
e 2---2---0---0---3---5---0---2---
B 3---2---2---0---3---7---0---2---
G 4---3---2---1---4---7---0---3---
D 4---4---2---2---5---7---2---4---
A 2---4---0---2---5---5---2---4---
E 2---2---0---0---3---5---0---2---