Dada una lista de acordes los etiqueta como 'Mayor' o 'Menor'.
Entrada
La entrada será una lista de acordes, uno por línea, compuesta de 3 notas separadas por un espacio. Cada nota consistirá en el nombre de la nota en mayúscula ( A
- G
) y un accidental opcional ( #
o b
). Los acordes pueden estar en cualquier inversión (es decir, las notas pueden estar en cualquier orden).
Salida
Si el acorde es mayor, salga 'Mayor'. Si el acorde es menor, envíe 'Menor'. Si el acorde no es mayor ni menor, genera una línea en blanco.
Ejemplo
Entrada
C E G
F Ab C
C Eb Gb
E G B
Db F Ab
Bb G D
D A Gb
Salida
Major
Minor
Minor
Major
Minor
Major
Scripts de prueba
Como en algunas de mis preguntas anteriores, una vez más eliminé algunos scripts de prueba creados originalmente por Joey y Ventero para proporcionar algunos casos de prueba para esta pregunta:
Uso: ./test [your program and its arguments]
Recompensas
Cada entrada que pueda verificar que cumpla con las especificaciones, pase las pruebas y obviamente haya tenido algún intento de jugar al golf recibirá un voto positivo de mí (así que proporcione instrucciones de uso con su respuesta). La solución más corta para fines del 13/10/2012 será aceptada como ganadora.
Una pequeña teoría
Para aquellos de ustedes que no tienen conocimientos de teoría musical, aquí hay suficiente información para que puedan competir.
Un acorde mayor o menor se compone de tres notas que están separadas por un patrón específico de semitonos. Si consideramos que la raíz (nota inferior) del acorde es 0, entonces un acorde mayor es el patrón 0-4-7 y un acorde menor es el patrón 0-3-7. Las cosas se vuelven más incómodas por el hecho de que algunas notas están separadas por un semitono y otras son un tono aparte. La propagación de semitonos de Ab
- G#
es la siguiente:
G#/Ab A A#/Bb B/Cb B#/C C#/Db D D#/Eb E/Fb E#/F F#/Gb G G#/Ab
0 1 2 3 4 5 6 7 8 9 10 11 12
G#/Ab
significa que esa G#
es la misma nota que Ab
. De esto podemos ver que el acorde Ab C Eb
es un acorde mayor, y eso Ab Cb Eb
es menor.
Para complicar más las cosas, el acorde Eb Cb Ab
se considera que es la misma que Ab Cb Eb
, Cb Eb Ab
y Cb Ab Eb
etcétera. Cada una de estas variaciones sigue siendo un acorde menor.