問題の意味の翻訳
ジグザグとジグザグ単語ゲームをプレイしています。ジグは、1つの文字を言って、ジグザグその文字で始まる単語を言います。しかし、言葉は、与えられた単語のリストに表示する必要があり、同じ最初の文字に使われる単語の最小数です。あなたがあいまいな単語を選択した場合(すなわち、1以上の同一の第1の手紙の中で使われる単語の最小数)は、その後、小さなザグ辞書式の文字を選択します。各ジグの文字がオプションであるために単語の保証を入力します。
K異なる単語とN所与ジグ文字からなるリストのリストがあると仮定する。ゲームNワードの過程で話された入力と出力のザグに基づいてプログラムを書きます。
入出力フォーマット
入力フォーマット:最初のライン入力は正の整数K(1≤K≤100000)及びNから(1≤N≤100000)を含みます。
以下のKラインは、21文字を超えないKワード、小文字の英文字、です。
以下のN行ジグはN小文字言われています。
出力フォーマット:N行、それぞれNジグの問い合わせの。
タイトル説明
ジグザグとジグザグ単語ゲームをプレイしています。ジグは、1つの文字を言うと、ザグはその文字で始まる単語を言います。しかし、言葉は許さ単語リストと、そのようなザグはすでにそれ倍の最低額と述べているからである必要があります。単語の選択があいまいである場合には、ジグザグ(アルファベットで早く)辞書順に小さいものを選択します。各ジグの手紙のために、単語を選択することが可能になります。
正確K異なる単語やジグを与えているN個の文字の配列からなるリストがあるとします。、ザグがゲームの中で語ったNワードの入力、出力配列に基づいてするプログラムを書きます。
入力形式
入力の最初の行はタスクから正の整数をK(1≤K≤100 000)およびN(1≤N≤100 000)を含みます。
以下のKラインの各々は、21文字より長いではない英語のアルファベットの小文字からなる単一の単語が含まれています。
以下のNラインの各々は、英語のアルファベットの小文字1文字が含まれています。
出力フォーマット
あなたは、各タスクからの単一の単語を出力N行含む必要があります。
サンプル入力と出力
4 5 ザグレブ スプリット ザダルが 噴出 し て 持つ と と
ザダルの 注ぎ口は スプリット ザグレブ ザダルを
5 3 ロンドン リム パリ à サラエボ のP Rの P
パリ 、ローマ 、パリ
1 3 ザグレブ と と と
ザグレブ ザグレブ ザグレブ
説明/ヒント
合計ポイントの60%の価値テストケースでは、それは、NとKが500未満であることを保持します。
書式#include <アルゴリズム> 書式#include <iostreamの> の#include <CStringの> の#include <cstdioを> する#include <cmath> の#include <キュー> std名前空間を使用しました。 文字列s [30] [10005]、S。 文字chを、 INTのN、M、NUM [30]、P [30]。 INTメイン(){ scanf関数( "%d個の%のD"、&N、&M)。 以下のために{(INT i = 1; iが++; iが<= N) CIN >> S。 int型のBJ = S [0] - '+ 1。 S [BJ] [++ NUM [BJ] = Sを、 } {ための式(I ++; iは= 26 <I = 1 INT) ソート(S [i]が+ 1、S [I] + NUM [I] +1)。 } 一方、(M - ){ CH = GETCHAR()。 一方、(CH < 'A' || CH> 'Z'){ CH = GETCHAR()。 P [BJ] ++; もし(P [BJ]> NUM [BJ]){ P [BJ] = 1。 } COUT << S [BJ] [P [BJ]] << ENDL。 } 0を返します。 }