Akorların bir listesi onları 'Büyük' veya 'Küçük' olarak etiketlediğinde.
Giriş
Giriş, boşlukla ayrılmış 3 notadan oluşan, her satırda bir tane olan akorların bir listesi olacaktır. Her nota büyük harfli ( A
- G
) nota adından ve isteğe bağlı bir kazara ( #
veya b
) oluşur. Akorlar herhangi bir ters çevrilmiş olabilir (yani notalar herhangi bir sırada olabilir).
Çıktı
Akor büyükse, 'Major' çıkışını verin. Akor küçükse, 'Minor' verin. Akor ne büyük ne de küçükse, boş bir satır verin.
Misal
Giriş
C E G
F Ab C
C Eb Gb
E G B
Db F Ab
Bb G D
D A Gb
Çıktı
Major
Minor
Minor
Major
Minor
Major
Test komut dosyaları
Geçmişteki bazı sorularımda olduğu gibi, bu soru için bazı test senaryoları sağlamak için bir kez daha Joey ve Ventero tarafından oluşturulmuş bazı test komut dosyalarını tekrar kullandım :
Kullanımı: ./test [your program and its arguments]
Ödüller
Spesifikasyonu karşıladığını doğrulayabildiğim, testleri geçtiğini ve golfte bazı girişimlerde bulunduğunu doğrulayabildiğim her giriş benden bir upvote alacak (bu yüzden lütfen cevabınızla birlikte kullanım talimatlarını sağlayın). 13/10/2012 sonuna kadar en kısa çözüm kazanan olarak kabul edilecektir.
Biraz teori
Müzik teorisi bilgisi olmayanlarınız için rekabet edebilmeniz için yeterli bilgi.
Bir majör veya minör akor, belirli bir yarı ton paterni ile ayrılmış üç notadan oluşur. Akorun kökünün (alt nota) 0 olduğunu düşünürsek, büyük bir akor 0-4-7 paterni ve küçük bir akor 0-3-7 paternidir. Bazı notaların yarı tonlu, bazılarının da tonlu olması gerçeği daha garip hale getiriyor. Ab
- ' den yarı tonların yayılması G#
aşağıdaki gibidir:
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
G#
ile aynı not olduğu anlamına gelir Ab
. Bundan görebiliyoruz ki akor Ab C Eb
büyük bir akor ve bu Ab Cb Eb
da küçük.
Komplike ayrıca önemli için, akor Eb Cb Ab
aynı olarak kabul edilir Ab Cb Eb
, Cb Eb Ab
ve Cb Ab Eb
vb. Bu varyasyonların her biri hala küçük bir akordur.