數字龍捲風 (APCS 2017-03 中級)
1.0s 256M給定一個 \(N*N\) 的二維陣列,其中 \(N\) 是奇數,我們可以從正中間的位置開始順時針旋轉的方式走訪每個陣列元素恰好一次。對於給定的陣列內容與起始方向,請輸出走訪順序之內容。下面的例子顯示了 \(N=5\) 且第一步往左的走訪順序:
依此順序輸出陣列內容則可以得到「9123857324243421496834621」。
類似地,如果是第一步向上則走訪順序如下:
依此順序輸出陣列內容則可以得到「9385732124214968346214243」。
輸入格式
輸入第一行是整數 \(N\),\(N\) 為奇數且不小於 \(3\)。第二行是一個 \(0 \sim 3\) 的整數代表起始方向,其中 \(0\) 代表左、\(1\) 代表上、\(2\) 代表右、\(3\) 代表下。第三行開始 \(N\) 行是陣列內容,順序是由上而下,由左至右,陣列的內容為 \(0 \sim 9\) 的整數,同一行數字中間以一個空白間隔。
輸出格式
請輸出走訪順序的陣列內容,該答案會是一連串的陣列內容,數字之間不要輸出空白,結尾有換行符號。
範例輸入 1
5
0
3 4 2 1 4
4 2 3 8 9
2 1 9 5 6
4 2 3 7 8
1 2 6 4 3
範例輸出 1
9123857324243421496834621
範例輸入 2
3
1
4 1 2
3 0 5
6 7 8
範例輸出 2
012587634
評分說明
輸入包含若干筆測試資料,每一筆測試資料的執行時間限制 (time limit) 均為 \(1\) 秒,依正確通過測資筆數給分。其中:
第 1 子題組 20 分,\(3 \le N \le 5\),且起始方向均為左。
第 2 子題組 80 分,\(3 \le N \le 49\),起始方向無限定。
提示:本題有多種處理方式,其中之一是觀察每次轉向與走的步數。例如起始方向是向左時,前幾步的走法是:左 \(1\)、上 \(1\)、右 \(2\)、下 \(2\)、左 \(3\)、上 \(3\)、…… 一直到出界為止。
題目來源
APCS 2017 年 3 月 4 日實作題第 3 題「數字龍捲風」。參考 APCS 官方歷屆試題 PDF 與 ZeroJudge c292。
登入後即可撰寫程式並提交評測。
登入