Historia de fondo [que no es verdad]
Un piano está configurado así:
Sin embargo, en mi piano, ¡todas las teclas negras están rotas!
Sin embargo, todavía quiero poder tocar algunos acordes en mi piano roto.
En música, un acorde es un grupo de notas que se tocan juntas. Para permitir la entrada de acordes, primero definiré qué es un semitono.
¿Qué es un semitono?
Un semitono es la distancia más pequeña en la música occidental. Si observa la parte superior del piano, verá que generalmente puede pasar de una tecla negra a una tecla blanca, o viceversa; sin embargo, entre B
y C
y E
y F
no hay tecla negra.
¿Qué es un acorde?
Para los propósitos de este desafío, definimos un acorde como un grupo de notas con un cierto número de semitonos entre ellas. Por ejemplo, tomemos una toma en un 4-3-3
acorde que comienza C
(para la gente de la música, este es un acorde V 7 en fa mayor). Empezamos a C
. Contamos hasta 4 semitonos: C#
, D
, D#
, E
. La siguiente nota es E
, y contamos con 3 semitonos después de eso: F
, F#
, G
. La siguiente nota es G
, y contamos con 3 semitonos después de eso: G#
, A
, Bb
. Entonces, lo tenemos C-E-G-Bb
. ¡Hurra! Pero espera ... Bb
es una llave negra y esas están rotas ... Sin embargo, si comenzamos desde G
, ¡obtenemos G-B-D-F
! ¡Hurra!
Entrada
La entrada se proporciona como una lista de enteros en cualquier formato razonable. Esto representa el acorde como se describió anteriormente.
Salida
La salida debería ser una lista de notas en las que puedo comenzar a necesitar solo usar teclas blancas. Esto también puede ser una cadena de todas las hasta 7 notas porque todos los nombres clave serán un solo carácter. También debe poder manejar tener una salida vacía.
Casos de prueba
input -> output // comments
4 3 -> C F G // this is a major triad
3 4 -> D E A // this is a minor triad
4 3 3 -> G // this is the major-minor seventh chord
3 3 3 -> [empty output] // this is the diminished-diminished seventh chord. All of them use black keys
4 4 -> [empty output] // this is an augmented triad
3 3 -> B // this is a diminished triad
1 -> B E // this is just a minor second
11 -> C F // this is just a major seventh
Otras especificaciones
- Lagunas estándar prohibidas
- Puede suponer que la entrada tiene al menos un número entero
- Puede suponer que todos los enteros no son negativos y tienen menos de 12 (porque el piano se repite cada 12 notas)
- La salida puede estar en cualquier orden
Criterios ganadores
Se aceptará la presentación válida más corta a partir del 15 de abril.