SP20984 UCBINTF - Music Academy

题目描述

Veronica 在一所音乐学院学习。她得到了一张只有音符的乐谱,需要辨识出使用的调式。对于这个问题,我们只考虑两种最常用(也最常在学校教授)的调式:A 小调和 C 大调。这并不意味着它们比其它小调或大调更简单或基础。事实上,所有的小调和大调都是通过音高的平移彼此等同的。 现代音乐里一个八度音包含 12 个音符 {A, A#, B, C, C#, D, D#, E, F, F#, G, G#}。而在 A 小调和 C 大调中,只使用名字最短的那些音符:A 小调的音符序列为 (A, B, C, D, E, F, G),C 大调的音符序列为 (C, D, E, F, G, A, B)。 注意,这两个调式的音符集实际上是相同的。那么,它们的不同之处在哪里呢?关键在于不仅是音符集,还有它们的使用方式决定了调式。特别是,调式音(即第一个音,又称为主音)、第四个音(下属音),以及第五个音(属音)在作品中容易成为重音。在 A 小调中,这些重音为 A、D 和 E,而在 C 大调中,这些重音为 C、F 和 G。我们将这些音符称为**主要音**。 这两种调式仅仅通过音高平移就等同了吗?其实不是这样:例如,A 小调的第三个音 C 比主音 A 高三个半音,而 C 大调的第三个音 E 比主音 C 高四个半音。因此,区别在于音程。这使得小调听起来“忧伤”,而大调则“欢乐”。 编写一个程序,通过比较不同小节的第一个音符(即重音)中的主要音数量,来判断一首乐曲更可能是 A 小调还是 C 大调。如果两种主要音的数量相等,则根据最后一个音来确定调式(在这种情况下,最后一个音保证是 A 或 C)。 例如,考虑著名的旋律“Frère Jacques”: CD|EC|CD|EC|EF|G|EF|G|GAGF|EC|GAGF|EC|CG|C|CG|C 音符“|”分隔小节,因此每小节的第一个音符依次为:C, E, C, E, E, G, E, G, G, E, G, E, C, C, C, C。其中有十个音符(C, C, G, G, G, G, C, C, C, C)属于 C 大调的主要音,而六个音符(E, E, E, E, E, E)属于 A 小调的主要音。因此,我们可以判断这首歌是用 C 大调写的。

输入格式

输入为一个仅有一行的字符串,包含 5 到 100 个字符,这些字符来自集合 {“A”, “B”, “C”, “D”, “E”, “F”, “G”, “|”}。这是简化的乐谱表示形式,字符“|”用于分隔小节。“|”不会连续出现,也不会出现在序列的开头或结尾。

输出格式

输出内容为一行,文本为 `C-dur`(表示 C 大调)或 `A-mol`(表示 A 小调)。 **本翻译由 AI 自动生成**