Écrivez le programme le plus court qui génère des tablatures de guitare pour les accords donnés en entrée.
Pour que les guitaristes parmi vous n'aient pas d'avantage, et pour le rendre déterministe (et probablement plus facile à coder), voici les seules formes d'accords autorisées:
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---
Notez que les 5 premiers accords et les 7 derniers accords de chaque série ont des formes différentes.
Tous les accords sont de simples accords majeurs ou mineurs (pas de 7e ou d'autres variantes).
Vous devez également prendre soin des appartements. Rappel:
A# = Bb
C# = Db
D# = Eb
F# = Gb
G# = Ab
B#, Cb, E# and Fb are not used
La sortie doit inclure la première colonne avec les noms des cordons, comme indiqué ci-dessus. Il n'est pas nécessaire d'inclure le nom de l'accord en haut. Les accords doivent être séparés par 3 -
comme indiqué ci-dessus. Les 3 derniers -
sont facultatifs.
L'entrée est une chaîne composée de noms d'accords, séparés par des espaces.
Un exemple d'entrée est:
Bm Gb A E G D Em F#
et la sortie correspondante est:
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---