背景故事[不正确]
钢琴的设置如下:
但是,在我的钢琴上,所有黑键都坏了!
我仍然希望能够在坏了的钢琴上弹奏一些和弦。
在音乐中,和弦是一起演奏的一组音符。为了输入和弦,我将首先定义什么是半音。
什么是半音?
半音是西方音乐中最小的距离。如果您看一下钢琴的顶部,您会发现通常可以从黑键移到白键,反之亦然。然而,与B
和C
和E
和F
没有黑键。
什么是和弦?
出于此挑战的目的,我们将和弦定义为一堆音符,在它们之间具有一定数量的半音。例如,让我们开始学习一个4-3-3
和弦C
(对于音乐人来说,这是F大调中的V 7和弦)。我们从开始C
。我们指望了4个半音:C#
,D
,D#
,E
。接下来需要注意的是E
,我们算3个半音起来后认为:F
,F#
,G
。接下来需要注意的是G
,我们算3个半音起来后认为:G#
,A
,Bb
。因此,我们得到了C-E-G-Bb
。好极了!但是,等待... Bb
是一把黑钥匙,那些钥匙已经坏了...但是,如果我们从开始G
,我们会得到G-B-D-F
!好极了!
输入项
输入以任何合理格式的整数列表形式给出。这代表如上所述的和弦。
输出量
输出应该是一个注释列表,我可以在此开始使用白键。这也可以是最多7个音符的字符串,因为所有键名都是一个字符。您还必须能够处理空的输出。
测试用例
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
其他规格
- 禁止标准漏洞
- 您可以假定输入至少有一个整数
- 您可以假设所有整数均为非负且小于12(因为钢琴每12个音符重复一次)
- 输出可以是任何顺序
获奖标准
截至4月15日的最短有效提交将被接受。