Backstory [không đúng sự thật]
Một cây đàn piano được thiết lập như thế này:
Tuy nhiên, trên cây đàn piano của tôi, tất cả các phím màu đen đều bị hỏng!
Tôi vẫn muốn có thể chơi một số hợp âm trên cây đàn piano bị hỏng của tôi.
Trong âm nhạc, hợp âm là một nhóm các nốt được chơi cùng nhau. Để cho phép nhập hợp âm, trước tiên tôi sẽ xác định semitone là gì.
Một nửa cung là gì?
Một nửa cung là khoảng cách nhỏ nhất trong âm nhạc phương Tây. Nếu bạn nhìn vào phần trên cùng của đàn piano, bạn sẽ thấy rằng bạn thường có thể chuyển từ phím đen sang phím trắng hoặc ngược lại; Tuy nhiên, giữa B
và C
và E
và F
không có phím đen.
Hợp âm là gì?
Đối với mục đích của thử thách này, chúng tôi xác định hợp âm là một nhóm các nốt với một số lượng bán kết nhất định giữa chúng. Ví dụ: chúng ta hãy 4-3-3
bắt đầu một hợp âm bắt đầu C
(đối với người nghe nhạc, đây là hợp âm V 7 trong F chính). Chúng tôi bắt đầu tại C
. Chúng tôi đếm lên 4 semitones: C#
, D
, D#
, E
. Những lưu ý tiếp theo là E
, và chúng tôi đếm 3 semitones lên sau đó: F
, F#
, G
. Những lưu ý tiếp theo là G
, và chúng tôi đếm 3 semitones lên sau đó: G#
, A
, Bb
. Vì vậy, chúng tôi nhận được C-E-G-Bb
. Yay! Nhưng chờ đã ... Bb
là một chìa khóa đen và chúng bị hỏng ... Tuy nhiên, nếu chúng ta bắt đầu từ đó G
, chúng ta sẽ nhận được G-B-D-F
! Yay!
Đầu vào
Đầu vào được đưa ra dưới dạng danh sách các số nguyên ở bất kỳ định dạng hợp lý nào. Điều này đại diện cho hợp âm như mô tả ở trên.
Đầu ra
Đầu ra phải là một danh sách các ghi chú mà tôi có thể bắt đầu chỉ cần sử dụng các phím trắng. Đây cũng có thể là một chuỗi của tất cả tối đa 7 ghi chú vì tất cả các tên khóa sẽ là một ký tự. Bạn phải có khả năng xử lý có một đầu ra trống là tốt.
Các trường hợp thử nghiệm
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
Thông số kỹ thuật khác
- Lỗ hổng tiêu chuẩn bị cấm
- Bạn có thể cho rằng đầu vào có ít nhất một số nguyên
- Bạn có thể cho rằng tất cả các số nguyên đều không âm và nhỏ hơn 12 (vì piano lặp lại sau mỗi 12 nốt)
- Đầu ra có thể theo thứ tự bất kỳ
Tiêu chí chiến thắng
Đệ trình hợp lệ ngắn nhất kể từ ngày 15 tháng 4 sẽ được chấp nhận.