Come terribile studente di latino per diversi anni ho imparato a odiare molte cose sul latino. Tuttavia c'è una cosa che amo.
Espansione latina.
Scansion è l'atto di determinare il metro di una particolare linea di poesie. Per il latino questo significa delimitare ogni sillaba nella riga come "leggera" o "pesante".
In latino la scansione ha molte regole. Tuttavia, diversamente dall'inglese, la scansione latina è abbastanza regolare e spesso non richiede alcuna conoscenza del vocabolario o della grammatica latina. Per questo problema useremo un sottoinsieme semplificato di quelle regole (il vero latino non ha specifiche precise).
Prima di iniziare la scansione devi sfuggire . Elision è la sillaba che cade tra le parole per facilitare la pronuncia. (es. "lui è" -> "lui"). A differenza dell'inglese, l'elezione latina segue regole molto buone.
La vocale finale di una parola che termina con una vocale viene omessa se la parola successiva inizia con una vocale.
NAUTA EST -> NAUTEST
Lo stesso vale per le parole che terminano con una vocale seguita da "m".
FIDUM AGRICOLAM -> FIDAGRICOLAM
La parola "h" iniziale, seguita da una vocale, conta come una singola vocale ai fini dell'elisione e viene sempre rilasciata quando viene eletta.
MULTAE HORAE -> MULTORAE
o
MULTAM HORAM -> MULTORAM
Dopo l'elisione possiamo iniziare la scansione. La scansione viene eseguita su un contatore specifico. Il metro per questa sfida è l'esametro dattilico . L'esametro dattilico ha sei "piedi" ogni piede è costituito da due o tre sillabe. Le sillabe possono essere lunghe o corte a seconda della vocale. Ognuno dei primi cinque piedi sarà o un dattilo, una lunga sillaba seguita da due brevi, o una sponda, due lunghe sillabe. E l'ultimo piede sarà un lungo seguito da un anceps (corto o lungo, per questo problema non dovrai determinare quale).
Una vocale in latino può essere corta o lunga
Una "i" inserita tra due vocali (ad es. Eiectum) è una consonante. (ovvero una "j")
Una "i" che inizia una parola seguita da una vocale (ad es. Iactus) è anche una consonante
Una "u" dopo una "q" è anche una consonante (cioè una "v")
I dittonghi (ae, au, ei, eu, oe e ui) sono composti da due vocali ma contano come una vocale e sono sempre lunghi
Una vocale con due o più consonanti tra essa e la vocale successiva è sempre lunga
Per la regola precedente, una "l" o una "r" dopo una "b", "c", "d", "g", "p" o "t" non contano come consonanti
"x" conta come due consonanti
"ch", "ph", "th" e "qu" contano come una consonante
La sillaba "que" alla fine di una parola (dopo l'elisione) è sempre breve
Se una vocale non è forzata da una delle regole precedenti, può essere lunga o corta a seconda del contatore
Il tuo compito sarà quello di prendere una linea di latino e produrne la scansione. Accoglierai la linea come stringa tramite l'input standard e otterrai una stringa che rappresenta lo scansionamento finale.
L'input conterrà solo spazi e caratteri AZ.
Per rappresentare lo scansionamento emetterai tutte le sillabe con |
demarcazione della separazione dei piedi. Una lunga sillaba sarà rappresentata da un -
breve mentre una breve sillaba sarà contrassegnata da una v
e un anceps (l'ultima sillaba di ogni riga) sarà contrassegnato da una x
. Se ci sono più soluzioni, come spesso accade, è possibile produrre qualcuno di loro.
Casi test
L'inizio dell'Eneide di Virgilio.
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
Ulteriori stipulazioni
Nella maniera corretta della poesia latina, tutte le risposte devono iniziare con un'invocazione alle muse .
Il latino ha solo due parole di una lettera "e" e "a". Si può presumere che nessun'altra parola di una lettera apparirà come input.
--vv
) lo è, ma in Italiam ( -vv-
) nello stesso verso non lo è. Forse hai inserito Js nell'input? Hai davvero una soluzione funzionante che genera questo output?