Module: ボル


Problem

3 /10


タイプ プリンター

Problem

Movable Type プリンタで N 単語を印刷する必要があります。ムーバブル タイプ プリンター -これらは古い印刷機で、小さな金属片 (それぞれ 1 つの文字が含まれている) を特定の順序で配置して単語を形成する必要があります。次に、それらはすべて一枚の紙にプレスされます。これにより 1 つの単語が出力されます。プリンターでは次のことが可能です:
  • 現在プリンター上にある単語の末尾に文字を追加します。
  • 現在プリンタ上にある単語から最後の文字を削除します。この操作は、単語に少なくとも 1 つの文字が含まれている場合にのみ実行できます。
  • 現在プリンターで単語を印刷します。
最初、プリンタには空のワードが含まれています。プリンターでの印刷の最後に空でない単語を残すことができます。与えられた単語は任意の順序で入力できます。
 
3 つの操作にはそれぞれ 1 単位の時間がかかります。指定された N 単語を最小限の時間で出力する一連の操作を見つける必要があります。最小シーケンスが複数ある場合は、いずれかを出力します。
 
入力
プログラムは次の入力を受け取る必要があります:
 
最初の行には数値 N (1<=N<=25000) があります。
次の N 行には、ラテンアルファベットの小さな文字で構成される単語が表示されます。各単語の長さは 20 を超えません。すべての単語は異なります。
 
出力
プログラムは次を出力するはずです:
 
最初の行 M —操作の数。
次の M 行では、1 つの -mdash;操作の説明。各操作は 1 文字で記述されます。
文字の追加は、文字自体によって示されます。
文字の削除は文字「-」で示されます。 (マイナス、ASCII コード 45)。
「現在の単語を表示」操作記号「P」で示されます。 (ラテン大文字の P)。
  <本体>
入力 出力
3
印刷
20
t
h
e
P
-
-
-
p
o
e
m
P
-
-
-
r
i
n
t
P