Advance Wars、Wargroove、Fire Emblemなどのターンベースの戦術ゲームは、地形のタイプごとに異なるコストを必要とする異なる移動クラスのユニットを持つ、さまざまな地形の正方形グリッドで構成されています。その問題のサブセットを調査します。
チャレンジ
あなたの仕事は、地形コストと移動速度のグリッドを考慮して、ある場所が別の場所から到達可能かどうかを判断することです。
ユニットは、正方形に移動するコストがグリッド上の対応するセルの値である場合にのみ直交移動できます(移動は無料です)。たとえば、3の値のセルから1の値のセルに移動するには1回の移動が必要ですが、他の方法で移動するには3が必要です。一部の正方形にはアクセスできない場合があります。
例
1 [1] 1 1 1
1 2 2 3 1
2 3 3 3 4
1 3 <1> 3 4
から[1]
に移動するに<1>
は、右に1マス、次に下に3マス移動することにより、最低7つの移動ポイントが必要です。したがって、移動速度として6以下を指定した場合、偽の答えを出力する必要があります。
テストケースの例
これらは、解析を容易にするために、開始と終了に角かっこで囲まれたセルではなく、左上の原点のゼロインデックス(行、列)座標を使用します。到達不能なセルはX
ケース1a
1 1 2 1 X
1 2 2 1 1
2 1 1 2 1
X X X 1 2
Speed: 5
From (2, 3) to (0, 1)
Output: True
ケース1b
1 1 2 1 X
1 2 2 1 1
2 1 1 2 1
X X X 1 2
Speed: 4
From (2, 3) to (0, 1)
Output: False
ケース1c
1 1 2 1 X
1 2 2 1 1
2 1 1 2 1
X X X 1 2
Speed: 5
From (0, 1) to (2, 3)
Output: False
ケース2a
3 6 1 1 X 4 1 2 1 X
5 1 2 2 1 1 1 X 1 5
2 1 1 1 2 1 1 1 X 1
2 1 1 3 1 2 3 4 1 2
1 1 2 1 1 4 1 1 1 2
3 2 3 5 6 1 1 X 1 4
Speed: 7
From (3, 4) to (2, 1)
Output: True
ケース2b
3 6 1 1 X 4 1 2 1 X
5 1 2 2 1 1 1 X 1 5
2 1 1 1 2 1 1 1 X 1
2 1 1 3 1 2 3 4 1 2
1 1 2 1 1 4 1 1 1 2
3 2 3 5 6 1 1 X 1 4
Speed: 4
From (3, 4) to (2, 1)
Output: False
ケース2c
3 6 1 1 X 4 1 2 1 X
5 1 2 2 1 1 1 X 1 5
2 1 1 1 2 1 1 1 X 1
2 1 1 3 1 2 3 4 1 2
1 1 2 1 1 4 1 1 1 2
3 2 3 5 6 1 1 X 1 4
Speed: 7
From (1, 8) to (2, 7)
Output: True
ケース3a
2 1 1 2
2 3 3 1
Speed: 3
From (0, 0) to (1, 1)
Output: False
ケース3b
2 1 1 2
2 3 3 1
Speed: 3
From (1, 1) to (0, 0)
Output: True
ルール、仮定、および注意
- 標準の抜け穴は禁止されており、I / Oは任意の便利な形式にすることができます
- 座標はすべてグリッド上にあると仮定できます
- 移動速度が100を超えることはありません
- アクセスできないセルは、非常に大きな数(例:420、9001、100万)、または0またはnullのいずれか、最も都合の良い方で表されます。
- すべての入力は正の整数で構成されます(到達不能セルを表すためにnullまたは0を使用しない限り)