I giochi di tattiche a turni come Advance Wars, Wargroove e Fire Emblem sono costituiti da una griglia quadrata di terreno variabile con unità di classi di movimento diverse che richiedono costi diversi per ogni tipo di terreno. Indagheremo un sottoinsieme di quel problema.
Sfida
Il tuo compito è determinare se una posizione è raggiungibile da un'altra data una griglia di costi del terreno e una velocità di movimento.
Le unità possono muoversi ortogonalmente solo dove il costo di spostamento su un quadrato è il valore della cella corrispondente sulla griglia (lo spostamento è libero). Ad esempio, spostarsi da una cella valutata 3 in una cella valutata 1 costa 1 movimento, ma andare nell'altra direzione richiede 3. Alcuni quadrati potrebbero essere inaccessibili.
Esempio
1 [1] 1 1 1
1 2 2 3 1
2 3 3 3 4
1 3 <1> 3 4
Il passaggio da [1]
a <1>
richiede un minimo di 7 punti movimento spostandosi a destra di un quadrato e poi di tre in basso. Quindi, se dato 6 o meno come velocità di movimento, dovresti dare una risposta falsa.
Esempi di casi di test
Questi utilizzeranno coordinate indicizzate a zero (riga, colonna) di origine superiore sinistra anziché celle tra parentesi per l'inizio e la fine per facilitare l'analisi. Le celle non raggiungibili verranno rappresentate conX
Caso 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
Caso 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
Caso 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
Caso 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
Caso 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
Caso 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
Caso 3a
2 1 1 2
2 3 3 1
Speed: 3
From (0, 0) to (1, 1)
Output: False
Caso 3b
2 1 1 2
2 3 3 1
Speed: 3
From (1, 1) to (0, 0)
Output: True
Regole, ipotesi e note
- Le scappatoie standard sono vietate, l'I / O può essere in qualsiasi formato conveniente
- Si può presumere che le coordinate siano tutte sulla griglia
- La velocità di movimento non sarà mai superiore a 100
- Le celle inaccessibili possono essere rappresentate con numeri molto grandi (ad es. 420, 9001, 1 milione) o con 0 o null, a seconda di quale sia la più conveniente per te.
- Tutti gli input saranno costituiti da numeri interi positivi (a meno che non si utilizzi null o 0 per rappresentare celle non raggiungibili)