Inspirado por isso .
fundo
O fazendeiro do mal decidiu queimar seu campo de trigo para aumentar os preços. Para garantir a destruição total, ele também encharcou seu campo com gasolina. Ainda mais, infelizmente, você estava andando no campo quando estava aceso e precisava sair rapidamente para sobreviver.
Desafio
Dado um campo que contém trigo, fogo e sua localização, determine se você pode sair do campo a tempo.
Um campo consiste em trigo (aqui representado por .
) e fogo ( F
). Aqui a sua localização é marcada com um O
. Por exemplo:
...F...F
F.......
........
.F......
....O...
...F....
........
.F....F.
A cada segundo você se move para qualquer célula adjacente (mas não na diagonal), e todo fogo se espalha para cada célula adjacente. Se você não pode se mudar para uma célula que não estará pegando fogo, você morre. Se você sair do campo, você sobrevive. Vamos ver o que acontece neste exemplo:
...F...F
F.......
........
.F......
....O...
...F....
........
.F....F.
..FFF.FF
FF.F...F
FF......
FFF.....
.F.F.O..
..FFF...
.F.F..F.
FFF..FFF
FFFFFFFF
FFFFF.FF
FFFF...F
FFFF....
FF.FF.O.
.FFFFFF.
FFFFFFFF
FFFFFFFF
FFFFFFFF
FFFFFFFF
FFFFF.FF
FFFFF.FF
FFFFFFFO
FFFFFFFF
FFFFFFFF
FFFFFFFF
FFFFFFFF
FFFFFFFF
FFFFFFFF
FFFFFFFF
FFFFFFFFO <-- you made it out and survived, barely
FFFFFFFF
FFFFFFFF
FFFFFFFF
Regras
- Sua entrada é o campo como uma grade. Você pode escolher qualquer formato de entrada, incluindo uma sequência com separadores de linhas ou uma matriz 2D.
- Você não pode tomar como entrada os locais para incêndio e / ou você mesmo.
- Você pode usar quaisquer 3 valores distintos como trigo, fogo e sua posição, incluindo não-strings para entrada da matriz.
- Os campos têm sempre pelo menos 1 x 1 de tamanho, retangulares e não contêm caracteres inválidos.
- Qualquer campo conterá exatamente um valor que representa sua localização e todas as outras posições podem ou não ser acionadas.
- Sua saída é um dos dois valores distintos para "você sobrevive" ou "você morre", como de costume no problema de decisão .
- Aplicam-se as regras padrão de código de golfe .
Casos de teste
Sobreviveu
O
....
.O..
....
FFFFF
.....
..O..
.....
FFFF
FFFO
FFFF
.F....
......
......
.F....
..O...
.FF...
.F....
..FF..
...F...F
F.......
........
.F......
....O...
...F....
........
.F....F.
Não sobreviveu
FFF
FOF
FFF
F.F
.O.
F.F
....F
.....
..O..
.....
F....
.F....F.
........
........
F..O....
........
.....F..
...F...F
F......F
........
.F......
....O...
...F....
........
.F....F.
F..F
.O..
FF..