Đưa ra một danh sách các hợp âm gắn nhãn chúng là 'Major' hoặc 'Minor'.
Đầu vào
Đầu vào sẽ là một danh sách các hợp âm, mỗi hợp âm trên một dòng, được tạo thành từ 3 nốt nhạc cách nhau bởi một khoảng trắng. Mỗi ghi chú sẽ bao gồm tên ghi chú bằng chữ hoa ( A
- G
) và một sự tình cờ tùy chọn ( #
hoặc b
). Hợp âm có thể trong bất kỳ đảo ngược (tức là các ghi chú có thể theo thứ tự bất kỳ).
Đầu ra
Nếu hợp âm là chính, hãy xuất 'Major'. Nếu hợp âm là nhỏ, hãy xuất 'Minor'. Nếu hợp âm không phải là chính cũng không phải phụ, hãy xuất một dòng trống.
Thí dụ
Đầu vào
C E G
F Ab C
C Eb Gb
E G B
Db F Ab
Bb G D
D A Gb
Đầu ra
Major
Minor
Minor
Major
Minor
Major
Kiểm tra kịch bản
Như trong một số câu hỏi trước đây của tôi, một lần nữa tôi đã tìm hiểu một số tập lệnh kiểm tra do Joey và Ventero tạo ra để cung cấp một số trường hợp kiểm tra cho câu hỏi này:
Sử dụng: ./test [your program and its arguments]
Phần thưởng
Mỗi mục mà tôi có thể xác minh đáp ứng thông số kỹ thuật, vượt qua các bài kiểm tra và rõ ràng đã có một số nỗ lực chơi gôn sẽ nhận được một upvote từ tôi (vì vậy vui lòng cung cấp hướng dẫn sử dụng với câu trả lời của bạn). Giải pháp ngắn nhất vào cuối ngày 13/10/2012 sẽ được chấp nhận là người chiến thắng.
Một chút lý thuyết
Đối với những bạn không có kiến thức về lý thuyết âm nhạc, đây là thông tin đủ để bạn có thể cạnh tranh.
Một hợp âm chính hoặc phụ được tạo thành từ ba nốt được phân tách bằng một mẫu bán kết cụ thể. Nếu chúng ta coi gốc (nốt dưới) của hợp âm là 0, thì hợp âm chính là mẫu 0-4-7 và hợp âm phụ là mẫu 0-3-7. Mọi thứ trở nên khó xử hơn bởi thực tế là một số ghi chú cách nhau một nửa và một số khác cách nhau. Sự lan truyền của semitones từ Ab
- G#
như sau:
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
có nghĩa đó G#
là cùng một lưu ý như Ab
. Từ đó chúng ta có thể thấy rằng hợp âm Ab C Eb
là một hợp âm chính, và đó Ab Cb Eb
là thứ yếu.
Làm phức tạp vấn đề hơn nữa, các hợp âm Eb Cb Ab
được coi là giống như Ab Cb Eb
, Cb Eb Ab
và Cb Ab Eb
vân vân. Mỗi một trong những biến thể này vẫn là một hợp âm nhỏ.