憧憬成為魔法機器人
此題為output only
給定一張\(n*m\)的方格表,其中起點為\(2\)的位置,終點為\(3\)的位置,機器人可使用如下指令
- 走路:向前走若干步
- 轉彎:向左或右轉
- 循環:重複若干次指令(此指令記為兩個,分別為開始與結束)
若能以最小指令數通過所有圖中\(1\)的位置由面向下方開始並從起點走至終點,則機器人可獲得神(色)奇(情)之力,請幫助機器人完成他的夢想
另外,若指令總共所需移動步數超過\(10^7\)次方以上,則機器人會因電池耗盡而失敗
可重複通過\(1\)的位置並不會視為失敗
若有多組答案,請按照以下方式排序後輸出第一組解:
- 指令總數較少者優先
- 由第一個指令開始比較,第一個不同的指令按照\(E\)(最優先)\(,L,R,S,W\)的順序比較
- 若全數指令種類均相同,第一個不同的數字越小者優先
Input
judge上只會輸入該subtask的編號,下方Input說明為雲端硬碟上的檔案輸入格式
輸入第一行有兩個正整數\(n,m\ (1\le n,m\le 400)\)。
之後有\(n\)行,每行有\(m\)個正整數,代表輸入的圖表
其中
- \(0\)代表該格不能通過
- \(1\)代表該格必須通過
- \(2\)代表起點
- \(3\)代表終點
Output
第一行代表指令總數,之後每行輸入一個指令滿足執行完指令後能從\(2\)走至\(3\)通過所有\(1\)的位置
走路指令為先由\(W\)開始,並於空白後以一個正整數代表走的步數,如\(W\ 10\)
轉彎指令以\(L\)代表左轉,\(R\)代表右轉
循環指令為先由\(S\)代表,並於空白後以一個正整數代表循環次數,如\(S\ 10\)
接著於結束時以\(E\)代表
範例:
\(5\)
\(S\ 10\)
\(W\ 5\)
\(L\)
\(E\)
\(R\)
Score
第 \(1,2\) 組測資:每組\(5\%\)
第 \(3,4,5,6,7,8,9\) 組測資:每組\(10\%\)
第 \(10\) 組測資:\(20\%\)
Remark
所有Input與測試檔案均在https://drive.google.com/drive/folders/18hkIiuYCkGBCWviIqTyDSOIKE7waNmpQ
因為judge限制,不同subtask分數不會疊加,judge上各題Input以數字代表該subtask(如:1代表第一組subtask),請使用條件判斷對不同subtask輸出不同答案
若有發現更佳解,歡迎使用此表單提交,會有\(100\)元獎勵喔!
Comments