#chokudai005a. [chokudai005_a]カラフルパネル

[chokudai005_a]カラフルパネル

問題文

NN 個、横 NN 個の正方形上にならんだ N×NN × N 個のパネルがあります。あなたは、このパネルを使ってゲームを行います。

このゲームは、出来るだけ全てのパネルの色を 11 色に揃える事が目的です。最初、各パネルは、色 11 から 色 KKKK 色で塗られています。

好きな色を念じながら 11 つのパネルをタッチすることで、そのパネルを好きな色に変えることができます。タッチしたパネルの色を ii、変えたい色を jj とします。 この時、タッチしたパネルから、上下左右に隣接する色 ii のパネルだけを辿って到達できる全てのパネルは、色 jj に変化します。

このゲームの最終得点は、以下のような計算式で求められます。

  • 最も多いパネルの色を ii とすると、色 ii のパネルが 11 枚存在するごとに、100100 点を得る。
  • パネルを 11 回タッチするごとに 11 点を失う。
  • ただし、パネルを合計 1000010000 回より多くタッチすると、システムが壊れてしまうため、00 点となる。

パネルの初期状態が与えられます。タッチの仕方を出力し、出来るだけ多くの得点を獲得してください。

なお、この問題は、入力が全て公開されており、また、全ての入力に独立な通し番号idがついています。これを利用して問題を解いても構いません。

また、C++によるジャッジ上で実際に動いている入出力チェッカーも公開しています。こちらを利用しても構いません。

制約

  • 11 ≦ id ≦ 5050
  • NN = 100100
  • KK = 99
  • SiS_iNN 文字の文字列であり、 jj 番目の文字 Si,jS_{i,j} は、1~K の KK 種類である。これは、上から ii 番目、左から jj 番目(以下(i,j)(i,j)と表す)のパネルがSi,jS_{i,j} 色であることを表す。
  • SS に使われる文字は、1~Kまで、均等な確率で独立にランダムで選ばれる。
  • 入力はこのリンクから得られるzipファイルと同一のものが与えられる。

入力

id NN KK S1S_1 S2S_2 : SNS_N

出力

以下のフォーマットで出力せよ。ただし、QQ はパネルをタッチする回数を表し、Yi,Xi,CiY_i, X_i, C_i はそれぞれ、ii 番目にタッチするパネルが、上から YiY_i 番目、左から XiX_i 番目(以下、(Yi,Xi)(Y_i, X_i) と表す)であり、変える色が CiC_i であることを表す。

QQ Y1Y_1 X1X_1 C1C_1 Y2Y_2 X2X_2 C2C_2 : YQY_Q XQX_Q CQC_Q

5050 個のテストケースに対する点数の和が、あなたの提出の得点となる。


入力例 1

0 6 9
515795
153859
833597
333419
333121
533917

出力例 1

2
5 5 1
5 2 1

この入力は、説明のため、実際には存在しない小さい入力を使用しております。

パネルは、初期状態では以下のようになっています。

初期状態

ここから出力の通りに 22 回タッチします。

最初は、(5,5)(5,5) のパネルを色 11 に変えます。この時、隣接するパネルの中で、元のパネルの色である、色 22 のものは存在しないため、このパネルのみの色が変わります。

状態1

次に、(5,2)(5,2) のパネルの色を 11 に変えます。この時、上下左右に隣接した色 33 のパネルを辿って到達できる全てのパネルは、色 11 に変化するため、以下のようにパネルが変化します。

状態2

全てのパネルを操作した後、最も多い色のパネルは色 11 であり、この枚数は 1818 枚です。

よって、18×1002=179818 × 100 - 2 = 1798 点が、この解の答えになります。