盤é¢ä¸Šã«ãƒãƒœãƒƒãƒˆã¨å£ï¼Œã‚´ãƒ¼ãƒ«ãŒè¨ç½®ã•ã‚Œã¦ãŠã‚Šï¼Œ ãƒãƒœãƒƒãƒˆã®è¡Œå‹•ãƒ‘ターンを記述ã—ãŸãƒ—ãƒã‚°ãƒ©ãƒ ãŒä¸Žãˆã‚‰ã‚Œã‚‹ï¼Ž
与ãˆã‚‰ã‚Œã‚‹ãƒ—ãƒã‚°ãƒ©ãƒ ã¯ä»¥ä¸‹ã®EBNF ã§è¡¨ã•ã‚Œã‚‹ï¼Ž
プãƒã‚°ãƒ©ãƒ := {æ–‡}; æ–‡:= if æ–‡|while æ–‡|動作文; if æ–‡:= "[", æ¡ä»¶, プãƒã‚°ãƒ©ãƒ , "]"; while æ–‡:= "{", æ¡ä»¶, プãƒã‚°ãƒ©ãƒ , "}"; 動作文:= "^"|"v"|"<"|">"; æ¡ä»¶:= ["~"], "N"|"E"|"S"|"W"|"C"|"T";
「プãƒã‚°ãƒ©ãƒ ã€ã¯0個以上ã®ã€Œæ–‡ã€ã‹ã‚‰ãªã‚Šï¼Œ1ã¤ä»¥ä¸Šã®æ–‡ãŒå˜åœ¨ã™ã‚‹å ´åˆã¯ 1 ã¤ç›®ã®æ–‡ã‹ã‚‰é †ç•ªã«1 ã¤ãšã¤æ–‡ãŒå®Ÿè¡Œã•ã‚Œã‚‹ï¼Žã€Œæ–‡ã€ã¯ã€Œå‹•ä½œæ–‡ã€ï¼Œã€Œif æ–‡ã€ï¼Œã€Œwhile æ–‡ã€ã®ã„ãšã‚Œã‹ã§ã‚る.「動作文ã€ã¯"^", "v","<",">" ã®ã„ãšã‚Œã‹ã§ã‚り,ãã‚Œãžã‚Œä»¥ä¸‹ã®å‹•ä½œãŒå®Ÿè¡Œã•ã‚Œã‚‹ï¼Ž
「if æ–‡ã€ã¯ "[",「æ¡ä»¶ã€ï¼Œã€Œãƒ—ãƒã‚°ãƒ©ãƒ ã€ï¼Œ"]" ã‚’é †ç•ªã«ä¸¦ã¹ãŸã‚‚ã®ã§ï¼Œä»¥ä¸‹ã®æ‰‹é †ã§å®Ÿè¡Œã•ã‚Œã‚‹ï¼Ž
「while æ–‡ã€ã¯ "{",「æ¡ä»¶ã€ï¼Œã€Œãƒ—ãƒã‚°ãƒ©ãƒ ã€ï¼Œ"}" ã‚’é †ç•ªã«ä¸¦ã¹ãŸã‚‚ã®ã§ï¼Œä»¥ä¸‹ã®æ‰‹é †ã§å®Ÿè¡Œã•ã‚Œã‚‹ï¼Ž
「æ¡ä»¶ã€ã¯ "N", "E", "S", "W", "C", "T" ã®ã„ãšã‚Œã‹ã§ã‚り,先é ã«ã¯"~" ã‚’ã¤ã‘ã‚‹ã“ã¨ãŒã§ãる.ãã‚Œãžã‚Œã®è¨˜è¿°ã¯ä»¥ä¸‹ã®çœŸå½å€¤ã‚’表ã™ï¼Ž
ãƒãƒœãƒƒãƒˆã¯æœ€åˆï¼ŒåŒ—ã‚’å‘ã„ã¦ã„ã‚‹ã‚‚ã®ã¨ã™ã‚‹ï¼Žãƒãƒœãƒƒãƒˆã¯å£ã‚’通るã“ã¨ãŒã§ããšï¼Œä½•ã‚‚ãªã„マスã®ã¿ã‚’移動ã§ãる.もã—,プãƒã‚°ãƒ©ãƒ ãŒå£ã®ä¸Šã‚’通るよã†ãªå‹•ä½œã‚’実行ã—よã†ã¨ã—ãŸå ´åˆï¼Œãƒãƒœãƒƒãƒˆã¯ç§»å‹•ã›ãšãã®å ´ã«ã¨ã©ã¾ã‚‹ï¼Žæœ€å¾Œã«ï¼Œãƒãƒœãƒƒãƒˆã¯ã‚´ãƒ¼ãƒ«ã«åˆ°é”ã—ãŸæ™‚,実行途ä¸ã®ãƒ—ãƒã‚°ãƒ©ãƒ ãŒæ®‹ã£ã¦ã„ãŸã¨ã—ã¦ã‚‚ã™ã¹ã¦ä¸æ–ã—ã¦å‹•ä½œã‚’åœæ¢ã™ã‚‹ï¼Ž
ã“ã®ã¨ã,ãƒãƒœãƒƒãƒˆãŒã‚´ãƒ¼ãƒ«ã«ãŸã©ã‚Šç€ãã¾ã§ã«ã©ã®ãらã„時間ãŒã‹ã‹ã‚‹ã®ã‹çŸ¥ã‚ŠãŸã„.ãƒãƒœãƒƒãƒˆã¯æ¡ä»¶åˆ¤å®šã‚„プãƒã‚°ãƒ©ãƒ ã®èªã¿è¾¼ã¿ã«é–¢ã—ã¦ã¯éžå¸¸ã«é«˜é€Ÿã«å®Ÿè¡Œã§ãã‚‹ã®ã§å®Ÿéš›ã®å‹•ä½œæ™‚間を決定ã™ã‚‹ã®ã¯ã€Œå‹•ä½œæ–‡ã€ã®ã¿ã§ã‚る.ãã“ã§ï¼Œã“ã®ãƒãƒœãƒƒãƒˆãŒã‚´ãƒ¼ãƒ«ã«è¾¿ã‚Šç€ãã¾ã§ã«ã€Œå‹•ä½œæ–‡ã€ã‚’何回実行ã™ã‚‹ã‹ã‚’æ•™ãˆã¦ã»ã—ã„.
ãªãŠï¼Œå£ã®ä¸Šã‚’通るよã†ãªå‹•ä½œã‚’実行ã—よã†ã¨ã—ã¦ï¼Œå®Ÿéš›ã«ã¯ã€Œå‹•ä½œæ–‡ã€ã®å‹•ä½œãŒè¡Œã‚ã‚Œãªã‹ã£ãŸå ´åˆã«ã‚‚「動作文ã€ã¯å®Ÿè¡Œã•ã‚ŒãŸã‚‚ã®ã¨ã¿ãªã™ï¼Ž
入力ã¯ä»¥ä¸‹ã®å½¢å¼ã§ä¸Žãˆã‚‰ã‚Œã‚‹ï¼Ž
H W a1,1a1,2 . . . a1,W a2,1a2,2 . . . a2,W : : : aH,1aH,2 . . . aH,W s
H ã¯ç›¤é¢ã®é«˜ã•ï¼ŒW ã¯ç›¤é¢ã®å¹…を表ã™ï¼Ž
次ã«ç›¤é¢ã‚’真上ã‹ã‚‰è¦‹ãŸçŠ¶æ…‹ãŒä¸Žãˆã‚‰ã‚Œã‚‹ï¼Žã“ã®ç›¤é¢ã¯ä¸Šï¼Œä¸‹ï¼Œå·¦ï¼Œå³ãŒãã‚Œãžã‚ŒåŒ—,å—,西,æ±ã«å¯¾å¿œã™ã‚‹ï¼Žå„マスã®çŠ¶æ…‹ã‚’表㙠ai,j ã¯ä»¥ä¸‹ã®ã„ãšã‚Œã‹ã®æ–‡å—ã§ã‚る.
s ã«ã¯ãƒãƒœãƒƒãƒˆã«ä¸Žãˆã‚‰ã‚Œã‚‹ãƒ—ãƒã‚°ãƒ©ãƒ ãŒæ–‡å—列ã¨ã—ã¦å…¥åŠ›ã•ã‚Œã‚‹ï¼Ž
ãŸã©ã‚Šç€ã‘ã‚‹å ´åˆã¯"到é”ã™ã‚‹ã¾ã§ã«å®Ÿè¡Œã—ãŸã€Œå‹•ä½œæ–‡ã€ã®æ•°" を,ãŸã©ã‚Šã¤ã‘ãªã„å ´åˆã¯ "-1" を出力ã›ã‚ˆï¼ŽãªãŠï¼Œå£ã®ä¸Šã‚’通るよã†ãªå‹•ä½œã‚’実行ã—よã†ã¨ã—ã¦ï¼Œå®Ÿéš›ã«ã¯ã€Œå‹•ä½œæ–‡ã€ã®å‹•ä½œãŒè¡Œã‚ã‚Œãªã‹ã£ãŸå ´åˆã«ã‚‚「動作文ã€ãŒå®Ÿè¡Œã•ã‚ŒãŸã‚‚ã®ã¨ã¿ãªã™ç‚¹ã«æ³¨æ„ã›ã‚ˆï¼ˆå…¥åŠ›ä¾‹1).
5 3 ### #g# #.# #s# ### ^<^<vv
5
5 7 ####### #.#g..# #.###.# #s....# ####### {T{~C^}<}
17
5 7 ####### #.#g..# #.###.# #s....# ####### {T{~C^}>}
-1