ブロック並べ
フィールド上に3x1のブロックを配置して、自分の陣地に最長の直線を作ろう。
説明
- 正方形のブロックが10x10個並んだフィールド上で競技を行う。
- フィールド上のブロックは値を持っており、初期値はすべて0である。
- 座標系は一番左上のブロックが (0, 0) である。
- それぞれのプレイヤーは1回のターンで1回ずつ同時に行動することができる。
- プレイヤーは1回のターンにつき3x1のブロック塊を1個配置することができる。
- プレイヤーが3x1のブロック塊を配置すると、フィールド上のブロックの値が変化する。
- 自プレイヤーが3x1のブロック塊を配置した位置のブロックは、値が1増加する。
- 他プレイヤーが3x1のブロック塊を配置した位置のブロックは、値が1減少する。
- 敵プレイヤーの陣地にブロックを置いた場合、値が変化する大きさが1ではなく2になる。ただし0を超えて変化することはない。
- 両プレイヤーが同じ場所に同時にブロックを置いた場合、ブロックが持つ値が0方向に1変化する。
- ブロックが3より大きい値、もしくは-3より小さい値を持つことはない。
- 正の値を持つブロックが自プレイヤーの陣地、負の値を持つブロックが他プレイヤーの陣地となる。
- それぞれのプレイヤーの得点は自分の陣地に含まれる最も長い直線の長さとなる。
- 20ターンが経過した時点で得点が大きいプレイヤーの勝利となる。
入力
T
V11 V21 V31 ...
V12 V22 V32 ...
...
- 1行目に、ゲーム開始から経過したターン数Fが与えられる。
- 2~11行目に、フィールド上のそれぞれのブロックの値が与えられる。
出力
x y rot
- 3x1のブロック塊を配置する位置を出力せよ。
- x: 3x1のブロック塊の中心のブロックのx座標
- y: 3x1のブロック塊の中心のブロックのy座標
- rot: 配置するブロック塊の向き
- 不正な出力をした場合、
5 5 0
を出力したものとみなされる。
Submit Code