3366 Deli Deli

Last-modified: 2011-12-12 (月) 09:49:19

原文


時間制限:1000ミリ秒
メモリ制限:65536KB

問題

Deli Deli
ショッピングサイトの管理人が困っています。
管理人は、商品のデータ入力を担当しているのですが、商品名に複数形をつけるのを忘れてしまいました。

困った管理人に代わって商品名を複数形にするプログラムを書いてください。

まずデータの入力は以下のとおりとなる。
最初の行にL,Nの2数が与えられる。
この2数は特別な変形をする単語の対応表の数と、複数形にしたい単語の数である。

続くL行にわたり、特別な変形をする単語の対応表が与えられる。

L=3での一つの例
rice rice
spaghetti spaghetti
octopus octopi

この対応表の左にある単語が与えられた場合右にある単語に変形して返す。
octopusという単語が与えられたらoctopiと出力し
riceという単語はriceのまま出力する、複数形の特別な変形である。

その後N行にわたり複数形にすべき単語が一行ずつ与えられる。

単語の複数形への変形ルールは以下のとおりである。

if(特別な変形をする対応表に単語がある)
単語の対応表に従って変換する
else if(末尾2文字が ay,iy,uy,ey,oyでなく、末尾がyのとき)単語末尾のyをiesに置き換える。
else if(末尾の文字が o s ch sh xで終わるなら)単語末尾にesを追加する。
else 単語末尾にsを追加する。

与えられた単語をすべて複数形にして一行ずつ出力せよ。

入力の例

3 7
rice rice
spaghetti spaghetti
octopus octopi
rice
lobster
spaghetti
strawberry
octopus
peach
turkey

出力の例

rice
lobsters
spaghetti
strawberries
octopi
peaches
turkeys

出典

Ulm Local 2007