B - Hello, Xmas Contest 2017 Editorial /

Time Limit: 2 sec / Memory Limit: 256 MB

配点 : 100

問題文

うさぎが Xmas Contest 2017 の看板を作ろうとしています。看板はマス目が長方形のグリッド状に並んだもので、それぞれのマスには 1 文字だけ文字を書くことができます。文字を書かないマスがあっても構いません。

うさぎが書ける文字の種類は、英大文字 (A-Z)、英小文字 (a-z)、数字 (0-9)、飾りの星マーク (*) のいずれかです。

うなぎが看板を読む時には、以下のようにして看板から文字列を読みとります:

  • 上の行から順に一行ずつ見ていく。
  • それぞれの行に対し、その行のいずれのマスにも文字が書かれていなければ、その行は無視する。
  • その行に文字の書かれているマスがあれば、そのうち最も左のマスに書かれている文字を読みとる。

うさぎは、うなぎが看板を読んだときに読みとる文字列から星マーク (*) を除いたものがちょうど XmasContest2017 となるように看板を作ろうとしています。

それだけでなく、看板の向きを間違えて 90 度、180 度、270 度いずれの角度に回転した状態で看板をかけることになった場合でも、うなぎが (* を除いて) XmasContest2017 という文字列を読みとるようにしたいと考えています。

この条件を満たす看板の例をひとつ求めてください。文字を書くインクが節約できるとうれしいので、文字を書くマスの個数が少ないほど高得点が得られます (詳細は採点方法の項を参照)。

入力

この問題では入力は与えられない。

出力

次のようなフォーマットで出力せよ。

H W
S_1
S_2
:
S_H

ここで H は看板を表すグリッドの行数、W は列数である。

S_1 から S_H はそれぞれ W 文字からなる文字列である。これらの文字列は英大文字 (A-Z)、英小文字 (a-z)、数字 (0-9)、アスタリスク (*)、ピリオド (.) のみからなる。

文字列 S_i (1 \leq i \leq H) の j 番目 (1 \leq j \leq W) の文字はグリッドの上から i 行目、左から j 列目のマスの情報を表す。その文字が . のときマスには何も書かれておらず、そうでないときはその文字がマスに書かれている。

採点方法

採点は以下のように行われます。

  • 出力がフォーマットに従っていない場合は WA と判定される。
  • 1 \leq H \leq 100 および 1 \leq W \leq 100 を満たしていない場合は WA と判定される。
  • 出力された看板を 0 度、90 度、180 度、270 度それぞれの角度に回転させたとき、うなぎの読み取る文字列から * を除いたものがちょうど XmasContest2017 になっていない場合があれば WA と判定される。

以上の判定で WA とならなかった場合 AC となりますが、そのとき得点は以下のように決まります。

  • 出力された看板に書かれた文字の数 (出力の文字列に含まれる . 以外の文字の文字数) を C としたとき、
    • C \leq 32 ならば 100
    • 32 < C \leq 100 ならば 100 × (100-C) / 68
    • 100 < C ならば 0

出力例1

6 7
Welcome
*...to.
.......
.*Xmas*
Contest
...2017

この場合、うなぎが読み取る文字列はそれぞれ以下のようになります。

  • (時計回りに) 0 度回転した場合: W**C2
  • (時計回りに) 90 度回転した場合: Con2017
  • (時計回りに) 180 度回転した場合: 7t*oe
  • (時計回りに) 270 度回転した場合: emocleW