ラテン系のひどい学生として数年間、私はラテン語について多くのことを嫌うことを学びました。しかし、私が好きなことが1つあります。
ラテン語のスキャンション。
スキャンとは、詩の特定のラインのメーターを決定する行為です。ラテン語の場合、これは、行の各音節を「軽い」または「重い」として区別することを意味します。
ラテン語のスキャンでは多くのルールがあります。ただし、英語とは異なり、ラテン語のスキャンはかなり規則的であり、ラテン語の語彙や文法の知識を実行する必要はありません。この問題については、これらのルールの簡略化されたサブセットを使用します(実際のラテン語にはきちんとした仕様がありません)。
あなたがしなければならないscansion始める前Elideのを。Elisionは、発音を簡単にするために単語間に音節をドロップすることです。(例:「彼は」->「彼は」)。英語とは異なり、ラテン語の省略は非常に優れた規則に従います。
次の単語が母音で始まる場合、母音で終わる単語の最後の母音は省略されます。
NAUTA EST-> NAUTEST
同じことが母音で終わり、その後に "m"が続く単語にも当てはまります。
FIDUM AGRICOLAM-> FIDAGRICOLAM
語頭の "h"の後に母音が続く場合は、省略のために1つの母音として数えられ、省略時には常に削除されます。
MULTAE HORAE-> MULTORAE
または
MULTAM HORAM-> MULTORAM
省略後、スキャンを開始できます。スキャンは特定のメーターに対して行われます。この挑戦のためのメートルは、dactylic hexameterです。Dactylic hexameterには6つの「足」があり、各足は2つまたは3つの音節で構成されています。音節は、母音に応じて長い場合と短い場合があります。最初の5フィートのそれぞれは、dactyl、長い音節、それに続く2つの短い音節、またはspondee、2つの長い音節のいずれかになります。そして、最後の足は、先祖が後に続く長いものになります(この問題では、先祖を特定する必要はありません)。
ラテン語の母音は短くても長くてもかまいません
2つの母音(例:ectectum)の間に挟まれた "i"は子音です。(つまり「j」)
母音が続く単語「i」、たとえば「Iactus」も子音です
「q」の後の「u」も子音です(つまり「v」)
二母音(ae、au、ei、eu、oe、ui)は2つの母音で構成されますが、1つの母音として数えられ、常に長くなります。
母音と次の母音の間に2つ以上の子音がある母音は常に長い
前のルールでは、「b」、「c」、「d」、「g」、「p」、または「t」の後の「l」または「r」は子音としてカウントされません
「x」は2つの子音としてカウントされます
「ch」、「ph」、「th」、および「qu」は1つの子音としてカウントされます
単語の最後の(省略後の)音節「que」は常に短い
母音が前の規則のいずれかによって強制されていない場合、長さも短さも、これはメーターによって異なります。
あなたの仕事は、ラテン語の行を取り、それをスキャンすることです。標準入力を介して行を文字列として取り込み、最終的なスキャンを表す文字列を出力します。
入力には、スペースと文字AZのみが含まれます。
スキャンを表すために|
、足の間隔を区切ってすべての音節を出力します。長い音節はaで表され、-
短い音節はaでマークされv
、先祖(すべての行の最後の音節)はでマークされますx
。複数のソリューションが存在する場合は、それらのいずれかを出力する可能性があります。
テストケース
ヴァージルのアエネイスの始まり。
ARMA VIRUMQUE CANO TROIAE QUI PRIMUS AB ORIS -> -vv|-vv|--|--|-vv|-x (or -vv|-vv|--|-vv|--|-x)
ITALIAM FATO PROFUGUS LAVINIAQUE VENIT -> -vv|--|-vv|-vv|-vv|-x
LITORA MULTUM ILLE ET TERRIS IACTATUS ET ALTO -> -vv|--|--|--|-vv|-x
VI SUPERUM SAEVAE MEMOREM IUNONIS OB IRAM -> -vv|--|-vv|--|-vv|-x (or -vv|--|-vv|-vv|--|-x)
MULTA QUOQUE ET BELLO PASSUS DUM CONDERET URBEM -> -vv|--|--|--|-vv|-x
INFERRETQUE DEOS LATIO GENUS UNDE LATINUM -> --|-vv|-vv|-vv|-vv|-x
ALBANIQUE PATRES ATQUE ALTAE MOENIA ROMAE -> --|-vv|--|--|-vv|-x
その他の規定
ラテン詩の適切な方法で、すべての答えは、ミューズへの呼び出しで始まる必要があります。
ラテン語には、「e」と「a」の2文字の単語しかありません。他の1文字の単語は入力として表示されないと想定できます。
--vv
)それはですが、中Italiam(-vv-
)と同じ詩にはそうではありません。たぶん入力にJsを入れますか?この出力を生成する実際のソリューションはありますか?