Escreva o programa mais curto que gere guias de guitarra para os acordes dados como entrada.
Para que os guitarristas não tenham uma vantagem, e para torná-la determinística (e provavelmente mais fácil de codificar), aqui estão as únicas formas de acordes autorizadas:
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---
Observe que os 5 primeiros acordes e os 7 últimos acordes de cada série têm formas diferentes.
Todos os acordes são simples ou maiores (sem sétima ou outras variações).
Você deve cuidar de apartamentos também. Lembrete:
A# = Bb
C# = Db
D# = Eb
F# = Gb
G# = Ab
B#, Cb, E# and Fb are not used
A saída deve incluir a primeira coluna com os nomes dos cabos, como mostrado acima. Ele não precisa incluir o nome do acorde na parte superior. Os acordes devem ser separados por 3, -
como mostrado acima. Os 3 finais -
são opcionais.
Entrada é uma sequência que consiste em nomes de acordes, separados por espaços.
Um exemplo de entrada é:
Bm Gb A E G D Em F#
e a saída correspondente é:
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---