給定一個 N*N 的二維陣列,其中N是奇數,我們可以從正中間的位置開始順時 針旋轉的方式走訪每個陣列元素恰好一次。對於給定的陣列內容與起始方向,請輸出走訪順序之內容。下面的例子顯示了N=5且第一步往左的走訪順序:
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 |
依此順序輸出陣列內容則可以得到 「9123857324243421496834621」。
類似地,如果是第一步向上則走訪順序下:
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 |
依此順序輸出陣列內容則可以得到 「9385732124214968346214243」。
原題pdf檔(在第4-5頁)
輸入 第一行 是整數 N,N為奇數且不小於 3。第二行是一個 0~3 的整數 代表起始方向, 其中 0代表左 、1代表上 、2代表右 、3代表下 。第三行開始 N行是陣列內容,順序是由上而下,左至右陣列的內容為 是由上而下,左至右陣列的內容為 是由上而下,由左至右,陣列的內容為 0~9 的整數, 同一行數字中間以一個空白間隔 。
請輸出走訪順序的陣列內容,該答案會是一連串的陣列內容,數字之間不要輸出空白,結尾有換行符號 。
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
9123857324243421496834621
3 1 4 1 2 3 0 5 6 7 8
012587634
評分說明
輸入包含若干筆測試資料,每一的執行時間限制 (time limit)均為1秒,依正確通過測資筆數給分。其中:
第 1子題組 20分, 3 ≤ N ≤ 5,且起始方向均為左 。
第 2子題組 80分, 3 ≤ N ≤ 49 ,起始方向無限定 。
提示:本題有多種處理方式,其中之一是觀察每次轉向與走的步數。例如起始方向是向左時,前幾步的走法是:左1、上 1、右 2、下 2、左 3、上 3、…… 一直到出界為止。
測資非官方的,是我自己產生的,若有誤請不吝告知
編號 | 身分 | 題目 | 主題 | 人氣 | 發表日期 |
37578 | edoctopus322 ... (Moon Jam) | c292 | 928 | 2023-09-17 21:18 | |
20871 | fire5386 (becaidorz) | c292 | 2170 | 2020-03-14 22:35 | |
37263 | zhoudaniel02 ... (周孝倫) | c292 | 701 | 2023-08-29 00:07 | |
37053 | jerry960216@ ... (丁宥竣(丁哥)) | c292 | 842 | 2023-08-20 09:48 | |
37052 | jerry960216@ ... (丁宥竣(丁哥)) | c292 | 415 | 2023-08-20 09:45 |