問題文
あなたは、サイズ N×N の数値グリッドを扱います。
各マス (i,j) には整数値が書かれており、初期状態のグリッドを A、目標状態のグリッドを B とします。
あなたの目的は、与えられた一連の操作を用いて、グリッド A をできるだけ B に近づけることです。
操作
あなたには T 種類の置換操作 Replace が与えられます。
それぞれの操作は次の形式で表されます:
ReplaceH,W,a,b
この操作は次の手順で適用できます:
- グリッド上の任意のマス (x,y) を選ぶ。
- その位置を左上とする H×W の矩形領域を考える(ただし範囲外に出る場合は選べない)。
- その矩形内に含まれるすべてのセルのうち、値が a であるものを b に変更する。
制約
- 各操作 ReplaceH,W,a,b は 最大3回まで 使用することができます。
- 操作の順番や適用位置は自由に選べます。
目標
最終的に得られたグリッドを A′ とします。
あなたの目的は、A′ を B にできるだけ近づけることです。
スコア
操作回数の総和を L 、テストケースの個数を Q として、スコアは次の式で計算されます:
Score=Q109×N2+L+∑i=0N−1∑j=0N−1(Ai,j′−Bi,j)2N2
スコアは高いほどよいです。
後述のビジュアライザで表示される点数は、この Q 倍です。
入力
N T
A0,0 A0,1 ⋯ A0,N−1
⋮
AN−1,0 ⋯ AN−1,N−1
B0,0 B0,1 ⋯ B0,N−1
⋮
BN−1,0 ⋯ BN−1,N−1
H0 W0 a0 b0
⋮
HT−1 WT−1 aT−1 bT−1
出力
<Length>
<opid> <x> <y>
⋮
Length≤105 である必要があります。
制約
- 15≤N≤60
- T=3000
- 0≤Ai,j,Bi,j,a,b<50
- 0<H,W≤N
ビジュアライザ
この問題をシミュレーションする ビジュアライザ が利用可能です。
また、このビジュアライザで使用可能なシード値によるジャッジが行われます。
システムジャッジ
テストケースに偏りがあるのを防ぐため、最終的に 300 個のシードによりジャッジを行うことを予定しています。
もしかしたらやるし、もしかしたらやらないです。
やる場合はコンテスト中に提出された最後の CE 以外の提出に対して行われます。
そのシード値を載せたリスト(seeds.txt)は終了後に公開されます。