Problem hidden
|This problem was hidden by Editorial Board member probably because it has incorrect language|version or invalid test data, or description of the problem is not clear.|

FR_07_07 - Przygody Informatyka Jonesa

Nasz tytułowy bohater jest słynnym podróżnikiem, pochodzącym z Programinii. W kraju tym, wszyscy w zależności od regionu czy miasta mówią różnymi językami programowania. Na przykład w Trójmieście Języków C, gdzie miasta to: City, City++ i City#, ludzie mówią odpowiednio w języku C, C++ i C#. Ciekawym regionem jest również Okręg Przemysłowy Brainf*cktory, gdzie mówi się, a jakże, w Brainf*cku. Wróćmy, więc do naszego podróżnika. Król Asemblord – władca Programinii, zlecił mu misję zbadania odległych krain, leżących poza Programinią. Tym razem Informatyk Jones udał się do bardzo dziwnego kraju. Istoty tam żyjące nie mówią językiem programowania, lecz normalnym językiem z gramatyką. Długo zajęło mu poznanie i nauczenie się owej mowy, lecz w końcu udało się i zapragnął stopniowo wysyłać królowi tajniki jej gramatyki, lecz biorąc pod uwagę charakterystykę Programinii, nie pisał on zwykłych listów, lecz programy. Wysyłając „list” opisujący zasady tworzenia liczby mnogiej, napotkał pewne problemy. Oto zasady jej tworzenia:

 

- jeżeli w wyrazie występuje samogłoska –e to –e zmienia się w –i oraz jeżeli w wyrazie występuje samogłoska –a to –a zmienia się w –e,

- jeżeli w wyrazie nie występują samogłoski –a ani –e, ale jeżeli występuje samogłoska –o to –o zmienia się w –e, jeżeli –o, ani –a, ani –e nie występuje, ale występuje –u to –u zamieniamy w –e i jeżeli żadna z wymienionych samogłosek nie występuje to, jeżeli występuje samogłoska –y to –y zmienia się w –e,

- samogłoska –i nie ulega żadnym zmianom.

 

Zasady wydają się proste, lecz język ten charakteryzuje się pewnymi nadrzędnymi regułami:

- w każdym wyrazie musi znajdować się co najmniej jedna samogłoska,

- dwie lub więcej takich samych samogłosek nie mogą występować obok siebie, czyli połączenia typu –aa, -ee, –oo, -uu, -ii -yy są niedozwolone,

- samogłoski nie mogą być używane jako półsamogłoski, czyli –i nie może być używane jako –j, oznacza to, że nie mogą występować takie połączenia jak –ie, -ia, -io, iu, iy, chyba, że przed takim połączeniem występuje spółgłoska –n, wtedy należy to przeczytać jako polskie –ń oraz połączenie może być dozwolone, jeżeli przed połączeniem –ie występuje –k lub –g, ponieważ wtedy czytamy tak jak po polsku np. w wyrazach kiełbasa czy kiełki (połączenia –ei, -ai, –oi -ui, yi są jak najbardziej dozwolone).

 

Wciel się w rolę słynnego podróżnika Informatyka Jonesa i prześlij królowi „list”, w którym zostaną omówione zasady tworzenia liczby mnogiej. Nie trzeba się obawiać, że król nie zrozumie „listu”, ponieważ zna on wszystkie języki programowania. Zważ każde słowo, ponieważ władca Programinii posiada osobistego cenzora SPOJusza, który przedstawia królowi tylko poprawnie napisane „listy”. 

Wejście

W pierwszym wierszu zostanie podana jedna, niewielka liczba naturalna t określająca liczę zestawów danych. Każdy zestaw składa się z jednego wyrazu zawierającego maksymalnie 25 znaków, będących jedynie małymi literami alfabetu łacińskiego (wszystkimi oprócz x i v) (wyrazy mogą, ale nie muszą spełniać zasad tego języka).

Wyjście

Na wyjściu należy podać liczbę mnogą, utworzoną od danego wyrazu (zgodnie z zasadami omówionymi powyżej). Samogłoski -a oraz -e należy zamieniać jednocześnie. Jeżeli w wyrazie pewna samogłoska nie może zostać zamieniona, ponieważ zamiana ta spowodowałaby złamanie którejkolwiek z reguł nadrzędnych, to nie zamieniamy danej samogłoski. Jeżeli w wyrazie pewna samogłoska nie może zostać zamieniona to nie oznacza to, że inne także nie mogą zostać zamienione. Jeżeli wyraz na wejściu nie spełnia którejkolwiek z reguł nadrzędnych należy wypisać: „wyraz niezgodny z zasadami mowy”. 

Przykład

Wejście:
13
bool
sqrt
io
hila
gaur
huo
onge
niea
feal
esa
kear
seanta
eao
Wyjście:
wyraz niezgodny z zasadami mowy
wyraz niezgodny z zasadami mowy
wyraz niezgodny z zasadami mowy
hile
geur
hue
ongi
niea
feal
ise
kier
seante
eao

Dodane przez:michal_sieczczynski
Data dodania:2017-04-07
Limit czasu wykonania programu:1s
Limit długości kodu źródłowego50000B
Limit pamięci:1536MB
Cluster: Cube (Intel G860)
Języki programowania:All except: ASM32-GCC COBOL D-DMD D-CLANG ELIXIR FANTOM GOSU GRV JS-MONKEY NIM OBJC OBJC-CLANG PICO RUST CHICKEN SCM qobi VB.NET

ukryj komentarze
2017-04-09 03:27:23 Bartosz Rychcik
Dziękuję za szybką odpowiedź, zwłaszcza o tej godzinie. Gratuluję fajnego zadania!!
2017-04-09 02:26:22
Bardzo przepraszam, wszystko jest w porządku w tym rozumowaniu. To jest swego rodzaju nieścisłość w treści zadania. Zamiany dokonujemy jednocześnie, więc nie rozbija się na drobniejsze przypadki, czyli kiar i keer.
2017-04-09 02:03:04 Bartosz Rychcik
Wyraz rozpatrujemy od lewej do prawej, a jeśli się jakiejś nie da podmienić, to tego nie robimy. Jak więc zaszła podmiana:
kear->kier
Idąc od lewej do prawej na początku modyfikujemy e -> i. Dostajemy kiar. Wystepuje tu fraza "ia", a przed nią jest
k, więc nie możemy tego wykonać. (z polecenia wynika że tylko "ie" można). Dalej mamy a->e. Dostajemy keer, czyli powtarzają się, również nie możemy wykonać.
Zatem zostaje kear, czy ja coś źle rozumiem ?
2017-04-08 22:06:52
Załączam jeszcze dwa dodatkowe testy:
in:
2
aeir
ueu
out:
aeir
ueu

Ostatnio edytowany: 2017-04-09 03:32:56
2017-04-08 19:35:46
Nie, nie trzeba, najkrótszy wyraz, jaki występuje w testach składa się z dwóch znaków. Proszę jednakże zwrócić uwagę, że wyrazy, jakie pojawiają się na wejściu mogą być niezgodne z zasadami, co tyczy się także wyrazów zawierających w sobie połączenia -ia, -ie, -io, -iu, -iy, których nie poprzedza głoska -n, a także połączeń -ie, których nie poprzedza głoska -k lub -g.
2017-04-08 19:22:20
Czy trzeba uwzględnić słowa 1-znakowe ?
© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.