Backstory [che non è vero]
Un piano è impostato in questo modo:
Tuttavia, sul mio piano, tutti i tasti neri sono rotti!
Voglio comunque essere in grado di suonare alcuni accordi sul mio pianoforte rotto, comunque.
Nella musica, un accordo è un gruppo di note che vengono suonate insieme. Per consentire l'inserimento di accordi, definirò innanzitutto cos'è un semitono.
Che cos'è un semitono?
Un semitono è la distanza più piccola nella musica occidentale. Se guardi la parte superiore del piano, vedi che di solito puoi passare da un tasto nero a un tasto bianco, o viceversa; tuttavia, tra B
e C
e E
e F
non esiste un tasto nero.
Cos'è un accordo?
Ai fini di questa sfida, definiamo un accordo come un mucchio di note con un certo numero di semitoni tra di loro. Ad esempio, diamo un'occhiata a un 4-3-3
accordo a partire C
(per la musica, questo è un accordo V 7 in fa maggiore). Iniziamo alle C
. Contiamo fino a 4 semitoni: C#
, D
, D#
, E
. La nota successiva è E
, e contiamo 3 semitoni dopo che: F
, F#
, G
. La nota successiva è G
, e contiamo 3 semitoni dopo che: G#
, A
, Bb
. Quindi otteniamo C-E-G-Bb
. Sìì! Ma aspetta ... Bb
è un tasto nero e quelli sono rotti ... Tuttavia, se iniziamo da G
, otteniamo G-B-D-F
! Sìì!
Ingresso
L'input viene fornito come un elenco di numeri interi in qualsiasi formato ragionevole. Questo rappresenta l'accordo come descritto sopra.
Produzione
L'output dovrebbe essere un elenco di note su cui posso iniziare a utilizzare solo i tasti bianchi. Questo può anche essere solo una stringa di tutte le fino a 7 note perché tutti i nomi dei tasti saranno un carattere. Devi essere in grado di gestire anche un output vuoto.
Casi test
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
Altre specifiche
- Scappatoie standard vietate
- Si può presumere che l'input abbia almeno un numero intero
- Puoi presumere che tutti i numeri interi siano non negativi e inferiori a 12 (perché il piano si ripete ogni 12 note)
- L'output può essere in qualsiasi ordine
Criteri vincenti
Sarà accettata la presentazione valida più breve al 15 aprile.