Jako straszny student łaciny od kilku lat nauczyłem się nienawidzić wielu rzeczy związanych z łaciną. Jest jednak jedna rzecz, którą kocham.
Łacińska rezydencja.
Rozcięcie to czynność polegająca na określeniu miernika określonej linii poezji. W przypadku łaciny oznacza to wytyczenie każdej sylaby w linii jako „lekkiej” lub „ciężkiej”.
Po łacinie scansion ma wiele zasad. Jednak w przeciwieństwie do angielskiego, łacińska wersja językowa jest dość regularna i często nie wymaga znajomości słownictwa łacińskiego ani gramatyki. Do tego problemu użyjemy uproszczonego podzbioru tych reguł (prawdziwa łacina nie ma schludnej specyfikacji).
Zanim rozpoczniesz posiadanie, musisz uciec . Elision to pomijane sylaby między słowami w celu ułatwienia wymowy. (np. „on” -> „on”). W przeciwieństwie do angielskiego, elity łacińskie przestrzegają bardzo fajnych zasad.
Ostatnia samogłoska słowa kończącego się samogłoską jest pomijana, jeśli następne słowo zaczyna się od samogłoski.
NAUTA EST -> NAUTEST
To samo dotyczy słów kończących się samogłoską, po której następuje „m”.
FIDUM AGRICOLAM -> FIDAGRICOLAM
Początkowa wyraz „h”, po której następuje samogłoska, jest liczona jako pojedyncza samogłoska do celów elekcji i zawsze jest pomijana po elucji.
HORAE MULTAE -> MULTORAE
lub
MULTAM HORAM -> MULTORAM
Po elekcji możemy rozpocząć rozbudowę. Skalowanie odbywa się do określonego miernika. Miernikiem tego wyzwania jest heksametr daktylowy . Heksametr daktylowy ma sześć „stóp”, każda stopa składa się z dwóch lub trzech sylab. Sylaby mogą być długie lub krótkie w zależności od samogłoski. Każda z pierwszych pięciu stóp będzie albo daktylem, długą sylabą, po której następują dwie krótkie, albo spondee, dwoma długimi sylabami. A ostatnią stopą będzie długi, a następnie anceps (krótki lub długi, w przypadku tego problemu nie będziesz musiał określić, który).
Samogłoska po łacinie może być krótka lub długa
„I” umieszczone między dwiema samogłoskami (np. Eiectum) jest spółgłoską. (tj. „j”)
„I” rozpoczynające słowo po samogłosce (np. Iactus) jest również spółgłoską
„U” po „q” jest również spółgłoską (tj. „V”)
Diphthongi (ae, au, ei, eu, oe i ui) składają się z dwóch samogłosek, ale liczą się jako jedna samogłoska i zawsze są długie
Samogłoska z dwiema lub więcej spółgłosek między nią a następną samogłoską jest zawsze długa
Dla poprzedniej reguły litera „l” lub „r” po „b”, „c”, „d”, „g”, „p” lub „t” nie są liczone jako spółgłoska
„x” liczy się jako dwie spółgłosek
„ch”, „ph”, „th” i „qu” liczą się jako jedna spółgłoska
Sylaba „que” na końcu słowa (po wymowie) jest zawsze krótka
Jeśli samogłoska nie jest wymuszona przez jedną z poprzednich reguł, może być długa lub krótka, zależy to od licznika
Twoim zadaniem będzie wzięcie linii łacińskiej i stworzenie jej rozszerzenia. Weźmiesz wiersz jako ciąg znaków za pomocą standardowego wejścia i wyprowadzisz ciąg reprezentujący końcową podziałkę.
Dane wejściowe będą zawierać tylko spacje i znaki AZ.
Aby przedstawić rozpiętość, wypiszesz wszystkie sylaby z |
rozgraniczeniem oddzielenia stóp. Długa sylaba będzie reprezentowana przez -
chwilę, a krótka sylaba będzie oznaczona a, v
a anceps (ostatnia sylaba każdej linii) będzie oznaczony przez x
. Jeśli istnieje wiele rozwiązań, które często będą, możesz wydrukować dowolne z nich.
Przypadki testowe
Początek Eneidy Wergiliusza.
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
Dalsze postanowienia
W odpowiedni sposób poezji łacińskiej wszystkie odpowiedzi muszą zaczynać się od inwokacji do muz .
Łacińska ma tylko dwa jednuliterowe słowa „e” i „a”. Możesz założyć, że żadne inne jednuliterowe słowa nie pojawią się jako dane wejściowe.
--vv
) jest, ale w Italiam ( -vv-
) w tym samym wersecie tak nie jest. Może wstawić Js na wejściu? Czy faktycznie masz działające rozwiązanie generujące ten wynik?