バベルフィッシュPOJ - 2503
あなただけのウォータールーから大都市に移動しました。ここの人々は、外国語の不可解な方言を話します。幸いにも、あなたがそれらを理解するのに役立つ辞書を持っています。
入力
入力は、最大10万語のメッセージに続いて空白行が続き、最大100,000辞書のエントリ、で構成されています。各辞書のエントリは、スペースや外国語の単語に続いて、英語の単語を含む行です。いかなる外国語は一度辞書でより多く表示されません。メッセージは、外国語の単語のシーケンス、各行に1つの単語です。入力中の各単語は、最大で10の小文字のシーケンスです。
出力
出力は、英語に翻訳されたメッセージ、1行につき1つの単語です。外国の言葉は辞書に「えっ」と訳されるべきではありません。
サンプル入力
しかしogday 猫atcayの 豚igpay ストロークootfray ループoopslay atcay ittenkay oopslay
サンプル出力
猫 えっ ループ
ヒント
巨大な入力と出力、scanf関数やprintf関数は推奨されています。
最初の髪のブログ
問題は、どの裁判官が空白行はありませんが、私はそれが困難な入力フォーマットを置くことを見つけることですか?
私のソリューションは、変更のタイプとして定義されている彼らは、入力文字列の長さを知らないので、バック入力文字列を、それが改行と判断された場合には、文字を入力して、[接続することです
しかし、唯一の文字列入力のcin coutの出力を持つ、とても遅いです
書式#include <cstdioを> する#include <iostreamの> の#include <マップ> 書式#include <文字列> std名前空間を使用しました。 INTメイン() { マップ<文字列、文字列> M。 char型のC; 文字列STR1、STR2。 一方、(!C = GETCHAR()、C = '\ n') { CIN >> 0009 >> STR2。 STR1 = C + 0009。 M [化2] = 0009。 getchar関数(); } 一方(CIN >> STR2) { IF(M [化2] = ""!) COUT << M [化2] << ENDL。 他の 裁判所未満<< "えっ" <<てendl; } }