あなたの仕事は、惑星に落下しているオブジェクトの総目的地を見つけることです、あなたはこのような入力を得るでしょう:
7
...#...
.......
#..O..#
.......
...#...
.......
.......
ここで、Oは惑星で、#はオブジェクトです。惑星は、基本的な方向(ニュース)からオブジェクトを引き付けます。あなたは出力する必要があります:
#
#O#
#
つまり、目的地に到達した後のオブジェクト。
入力として与えられる最初の数は、grid(nxn)の長さです。上記の例では7です。
オブジェクトは常に最短方向に移動する必要があります(使用できる方向は水平方向と垂直方向のみです。オブジェクトは斜めに移動できません)。
オブジェクトが2つの方向から等距離にある場合、時計回りの方向に移動する必要があります。
..#
...
O..
この側に到達します:
...
...
O#.
オブジェクトが惑星に衝突すると、停止します。別のオブジェクトと衝突すると、それらは1つのオブジェクトになります。
4
.#..
#...
....
.O..
になるでしょう:
....
....
.#..
.O..
最後の例:
6
..#...
.#....
......
.#O...
....#.
......
出力:
......
......
..#...
.#O#..
......
......
注:最終的な形状を出力する必要があるため、惑星の最終的な形状を示している限り、すべての出力が受け入れられます。
たとえば、この入力の場合:
...#
....
.O..
....
出力する必要があります:
O#
または
....
....
.O#.
....
これらは両方とも受け入れられます。
これはコードゴルフな ので、最も短い答えが勝ちます
注2:
お気づきかもしれませんが、a .は真空を表すので、最短経路は最短のドット数です。
例えば:
.#.
...
.O.
受け入れられない
O#
最短経路は垂直であるためです。 注3:
オブジェクトは常に4つの方向のいずれかで惑星と同じ線上に移動する必要があります(最短を選択)
|<#
|
|
-----O------
|
制限:
2 <= n <= 100