Sua tarefa é encontrar o destino total dos objetos que estão caindo em um planeta; você obterá entradas como esta:
7
...#...
.......
#..O..#
.......
...#...
.......
.......
onde O é o planeta e # são os objetos, observe que o planeta atrairá objetos das direções básicas (NEWS). Você deve produzir:
#
#O#
#
ou seja, os objetos depois de chegarem ao seu destino.
O primeiro número fornecido como entrada é o comprimento da grade (nxn); no exemplo acima, é 7.
O objeto sempre deve se mover na direção mais curta (observe que as direções permitidas são apenas horizontais e verticais; o objeto não pode se mover na diagonal)
Se um objeto é equidistante de duas direções, ele deve ir no sentido horário:
..#
...
O..
Chegará a este lado:
...
...
O#.
Se um objeto colidir com o planeta, ele irá parar. Se colidir com outro objeto, eles se tornam um objeto,
4
.#..
#...
....
.O..
se tornaria:
....
....
.#..
.O..
Um exemplo final:
6
..#...
.#....
......
.#O...
....#.
......
Resultado:
......
......
..#...
.#O#..
......
......
Nota: Você deve exibir a forma final, para que todas as saídas sejam aceitas desde que mostrem a forma final do planeta.
por exemplo para esta entrada:
...#
....
.O..
....
Saída deve:
O#
ou
....
....
.O#.
....
Ambos são aceitos.
Isso é código-golfe, então a resposta mais curta será ganha
Nota 2:
Como você deve ter notado, a .
representa o vácuo, portanto, o caminho mais curto é o menor número de pontos.
Por exemplo:
.#.
...
.O.
Não é aceito para ser
O#
já que o caminho mais curto é vertical. Nota 3:
O objeto deve sempre se mover para estar na mesma linha do planeta em uma das quatro direções (escolhendo a mais curta)
|<#
|
|
-----O------
|
Restrições:
2 <= n <= 100