不知道大家有沒有下過將棋?將棋中有個規則要做"升變",當一隻棋子走到對方的末三排時就可以選擇升變,改變該棋子的走法。
今天有一隻步兵在升變的那一瞬間,突然被移動到一個奇怪的空間中,這是一個$n\times m\times h$(長*寬*高)的三維空間,
每一格皆可用正整數座標$(x,y,z)$來表示,且在每一格上都有一個正整數。除此之外,他還獲得了一項特殊能力:
可以在移動的同時隨意地穿越至編號為$1\sim d$的平行空間(一開始在編號1的平行空間中)。在被移動到這裡的同時,
他通靈出了離開這裡的方法,就是不斷的往"在他一步可及的位置中,且其數字比當前位置的數字大",符合條件最小的一個,
若沒有點符合條件則停止移動。而他一步能走到的位置如下所述:
1. 他能前往同一平面($z$座標不變),升變步兵所能走到的位置(如下圖)
2. 他能往上或下移動一層($z$座標$\pm1$而$x,y$座標不變)
3. 不得走出邊界,也就是位置$x,y,z$須符合$1\le x\le m$ , $1\le y\le n$ , $1\le z\le h$
4. 他能前往任意平行時空符合上述條件的位置(不得前往當前位置的其他平行時空)
如果他不斷的照著此規則移動,請問他最後會停在哪裡?
若步兵位於中間那格,他能前往的位置為那6格O所標示的位置
第一行有四個正整數$d,n,m,h$分別代表平行空間數與三維空間中的長,寬,高。
接下來將分別輸入$d$個三維空間,分別代表編號第$1\sim d$的平行空間。
每個平行空間會由$h$個$n\times m$的矩陣表示,分別代表高度$1\sim h$的平面。
(也就是一共會輸入$d\times h$個$n\times m$的正整數矩陣)
其中每個平面以左下角為座標$(x,y)=(1,1)$,且以右為$+x$方向,以上為$+y$方向。
最後一行有三個正整數$x,y,z$,代表步兵的起始位置。(他一開始在編號1的平行空間中)
$n,m,h,d\le20$ , $a\le 10^9$ , $1\le x\le m$ , $1\le y\le n$ , $1\le z\le h$ , 且所有$a$皆相異
輸出四個正整數$td,tx,ty,tz$分別代表步兵停止的平行空間與位置。
2 3 2 2 1 9 15 3 17 5 6 16 21 24 7 20 10 12 13 2 8 22 33 11 25 18 26 4 1 3 1
2 1 1 2
範測中,步兵的位置依序為(以$(d,x,y,z)$表示):
$(1,1,3,1)\rightarrow(1,1,3,2)\rightarrow(2,1,3,1)\rightarrow(2,2,3,1)\rightarrow(1,2,3,2)\rightarrow(2,2,2,2)$
$\rightarrow(1,2,1,2)\rightarrow(1,1,2,2)\rightarrow(1,2,2,2)\rightarrow(2,1,2,2)\rightarrow(2,1,1,2)$
本題目的是讓各位熟悉高維陣列,請特別小心以下幾點:
1. 陣列的維度(如何輸入/每個維度分別的物理意義)
2. 陣列/題目要求分別是0-base還是1-base
3. 方向(下標與座標正向是同向還是反向)
編號 | 身分 | 題目 | 主題 | 人氣 | 發表日期 |
沒有發現任何「解題報告」 |